盘点一个Python网络爬虫实战问题

2022年9月8日 253点热度 0人点赞 0条评论

图片文章:Python爬虫与数据挖掘
作者:Python进阶者

01
前言



前几天在Python钻石交流群【海南菜同学】问了一个Python网络爬虫的选择器提取问题,下图是截图:
图片
代码初步看上去好像没啥问题,但是结果就是不对。
from lxml import etreeimport requestsurl = "http://zw.hainan.gov.cn/wssc/emalls.html"headers = {    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}html = requests.get(url,headers=headers)html = html.content.decode('utf-8')doc = etree.HTML(html)res = doc.xpath('/html/body/div[5]/ul/text()')print('*-*--'*20)for item in res:    print(type(item))    print(item[0])
print('*-*--'*20)
初步判断是xpath写得有问题。

02
实现过程

这里【猫药师Kelly】确认了需求,如下所示:
图片
修改提取规则,运行之后可以顺利得到预期的文本:
图片
运行之后,可以得到想要的结果:
图片
后来粉丝就顺利地解决了,代码如下所示:
from lxml import etreeimport requestsurl = "http://zw.hainan.gov.cn/wssc/emalls.html"headers = {    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}html = requests.get(url,headers=headers)html = html.content.decode('utf-8')doc = etree.HTML(html)res = doc.xpath('.//div/ul/li/a[2]/text()')print('*-*--'*20)for item in res:    print(type(item))    print(item)
print('*-*--'*20)

网络爬虫的时候,记得养成好习惯,加请求头啊!
- 合作、交流、转载请添加微信 moonhmily1 -

图片

82660盘点一个Python网络爬虫实战问题

这个人很懒,什么都没留下

文章评论