# yyds干货盘点 # 盘点一个pyquery库选择器提取案例

网友投稿 302 2022-09-04


# yyds干货盘点 # 盘点一个pyquery库选择器提取案例

大家好,我是皮皮。

一、前言

前几天在Python白银群有个叫【手中的流沙】的粉丝问了一道关于​​pyquery​​选择器提取的问题,如下图所示。

就像这样:

原网页的信息如下图所示:

实现过程

这里【甯同学】给了一份代码,如下所示:

from pyquery import PyQuery as pqheaders = { 'Accept-Language': 'zh-CN,zh;q=0.9', 'Cache-Control': 'max-age=0', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}html = pq(url='headers=headers)doc = pq(html)li = doc('div.style-type3 > div:gt(0) > ul > li.item > ul > li.list-item').items()for i in li: info = { 'city': i.text().split('\n\n\n') } print(info)

代码运行之后,结果如下图所示:

确实一步到位了,很强!原来​​pq​​可以直接请求网页,确实也省事了。主要是那个​​css​​构造还是需要点时间和精力的。

这个地方也还可以使用​​xpath​​提取来实现,代码如下:

import requestsfrom lxml import etreeres = requests.get(url='headers=headers)res.encoding = res.apparent_encodinghtml = etree.HTML(res.text)li_lists = html.xpath('/html/body/div[1]/div[2]/div[2]/div[2]/ul/li')print(len(li_lists))for li in li_lists: info = li.xpath('./ul//li//text()') # shi = li.xpath('./ul//li/h4/text()') # qu = li.xpath('./ul//li/strong/text()') # jiedao = li.xpath('./ul//li/br/text()') print(info)

运行之后,结果如下图所示:

当然了,你还可以使用​​re正则表达式​​和​​bs4​​来提取,这个网页并不难,用来练手还是不错的。

三、总结

大家好,我是皮皮。这篇文章主要盘点一个pyquery库选择器提取案例!如果你还有其他方法,也欢迎大家积极尝试,一起学习,记得分享给我哦。

最后感谢粉丝【手中的流沙】提问,感谢【甯同学】、【dcpeng】在运行过程中给出的思路和代码建议,感谢粉丝【月神】、【庄大】等人参与学习交流。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于mybatis中test条件中单引号双引号的问题
下一篇:API管理的创新加速之道:API优先与API主导
相关文章

 发表评论

暂时没有评论,来抢沙发吧~