分享

盘点一个Python网络爬虫Xpath选择器使用问题

 Python进阶者 2023-02-10 发布于广东

坐观垂钓者,徒有羡鱼情。

大家好,我是皮皮。

一、前言

前几天在Python钻石交流群【海南菜同学】问了一个Python网络爬虫的选择器提取问题,下图是截图:

代码如下图所示:

代码初步看上去好像没啥问题,但是结果就是不对。

from lxml import etree
import requests
url= "http://www./duanzi/"

resp = requests.get(url)
html = etree.HTML(resp.text)

print('*---*'*20)

result = html.xpath("/html/body/div[@class='main']/div[@class='content']/div[@class='grid clearfix']/div[@class='content-left']/div[@class='one-cont'][*]/p[@class='fonts']")
print(type(result))
print(result)
print('*-*'*20)
b = 0
for i in result:
    b += 1
    print(i,len(result))
    print(b,etree.tostring(i).decode('utf-8'))
    if b > 1:
        break

初步判断是xpath写得有问题。

二、实现过程

这个问题,讨论的很激烈,具体细节讨论就不放出来了,这里【薄荷味的鱼】给了一个修改代码,如下所示:

运行之后可以顺利得到段子的文本:

运行之后,可以得到想要的结果:

后来粉丝就顺利的解决了,如下图所示:

这个粉丝后来还做了笔记,一起分享出来共同学习下:

网络爬虫的时候,记得养成好习惯,加请求头啊!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python网络爬虫的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【海南菜同学】提问,感谢【dcpeng】、【瑜亮老师】、【薄荷味的鱼】、【🌑中华小矿工】、【甯同学】、【逸 】给出的思路和代码解析,感谢【冫马讠成】、【此类生物】、【猫药师Kelly】等人参与学习交流。

------------------- End -------------------

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多