谷歌浏览器直接提取的xpath,在python中为啥无法提取相应内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷歌浏览器直接提取的xpath,在python中为啥无法提取相应内容相关的知识,希望对你有一定的参考价值。

你的xpath写的太长了吧,很容易出错的 内容的tr的class都是provincetr,用这个筛选容易多了,//tr[@class="provincetr"]/td/a/text() xpath不熟悉,看了下wiki写出来的,写的不好 补充,这个才算真正回答你的问题,为什么浏览器可以,但是lxml不可以 因为浏览器对不标准的html文档都有纠正功能,而lxml不会 查看page source,注意是源代码,不是developer tool那个;最后一个table并没有包含tbody,浏览器会自动补充tbody,而lxml没有这么做,所以你的xpath没有找到 参考技术A 军事家吻擞采纳苍灯

XPath学习用于爬虫,感觉比beautifulsuop好用一点

XPath就是通过树结构来定位元素
获取标签下的文本是用text()
还有最大的优点是能够直接通过谷歌浏览器的开发者工具直接复制XPath路径
例如
想要获得“加粗”这两个字在当前页面的XPath路径

首先打开谷歌浏览器打开csdn的创作界面,然后按F12
右边出现框框的左上角的箭头点击一下之后

再去点击“加粗”


就会发现左边的框框跟着定位到了这个元素所在的html层

此时只需要单击右键选择XPath路径复制即可

我选择完整XPath路径复制
结果如下

/html/body/div[1]/div[1]/div[2]/div/div[1]/nav/div[2]/div[1]/div[1]/button

下面学习一下XPath的一些语法(我主要用于爬虫,因此讲解的主要使用的是python中lxml包中的语法)
首先需要打开终端按一下这个lxml包

pip intsall lxml

然后毕竟实践出真知,直接上代码实例好了,自己看看运行运行马上就懂了。

# coding : utf-8
from lxml import etree
xml = '''
<book>
     <name>野花</name>
     <nick>臭豆腐</nick>
     <div>
          <nick>哈哈哈</nick>
          <nick>ads</nick>
          <div>
                <nick href="dapao">哈哈哈hhh</nick>
                <nick href="feijia">哈哈哈dahhh</nick>
          </div>
     </div>
</book>

'''
tree = etree.XML(xml)
# tree = etree.HTML()  # 解析html时就换个名字即可,这里是xml的例子
text = tree.xpath("/book/name/text()")
print(text)

text1 = tree.xpath("/book/nick/text()")
print(text1)

text1 = tree.xpath("/book//nick/text()")  # 从book的后代中寻找所有nick标签
print(text1)

text1 = tree.xpath("/book/*/nick/text()")  # *为通配符,代表一层
print(text1)

text1 = tree.xpath("/book/div/nick[1]/text()")  # 索引
print(text1)

text1 = tree.xpath("/book/div/div/nick[@href='dapao']/text()")  # 属性选取
print(text1)

text1 = tree.xpath("/book/div/div/nick/@href")  # 属性值获取
print(text1)

nick_list = tree.xpath("/book/div/div")

for nick in nick_list:
    print(nick.xpath("./nick/text()"))

这应该是我以前b站上看的,讲的蛮好的。

以上是关于谷歌浏览器直接提取的xpath,在python中为啥无法提取相应内容的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器直接提取的xpath,在python中为啥无法提取相应内容

爬虫进阶数据提取-lxml模块(万能操作)

python爬虫 XPath语法

Chrome安装爬虫必备插件:Xpath Helper高效解析网页内容(实测有效)

1.Scrapy爬虫之静态网页爬取之一 了解response.xpath()

python爬虫-简单使用xpath下载图片