这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » python解析库的使用--PyQuery

共23条 1/3 1 2 3 跳转至

python解析库的使用--PyQuery

工程师
2022-04-15 23:39:39     打赏
PyQuery介绍与安装

PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择。

PyQuery 是 Python 仿照 jQuery 的严格实现。

语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了。

官网地址:https://pyquery.readthedocs.io/en/latest/

  • PyQuery的安装

pip install pyquery
  • URL初始化:

# 推荐使用requests爬取信息
from pyquery import PyQuery as pq
import requests
res = requests.get("http://www.baidu.com")
res.encoding = "utf-8" # 因为原编码为ISO-8859-1
#print(res.text)
doc = pq(res.text)
print(doc("title"))
PyQuery的使用

首先创建一个html文件:my.html 用于测试pyquery的解析效果


我的常用链接
  • 百度

  • 京东

  • 搜狐

  • 新浪

  • 淘宝

使用pyquery解析my.html


# 读取my.html的文件内容,并使用pyquery来查找节点
from pyquery import PyQuery as pq

doc = pq(filename='my.html',encoding="utf-8")

print(doc('title')) #通过html标签名获取元素节点
print(doc('#hid'))  #获取id属性值为hid的元素节点
print(doc('.bb'))  #获取class属性值为bb的元素节点
print(doc('title,h3')) #选择符组的使用

print(doc("ul li.shop a")) #关联选择符的使用

print(doc("a")) #获取所有a
print(doc("a:first")) #获取第一个a
print(doc("a:last")) #获取最后一个a
print(doc("a:lt(2)")) #获取前连个a
print(doc("a:eq(2)")) #获取索引位置2的a(第三个)

print(doc('a[href="http://www.sina.com"]')) #获取指定属性值的节点

print("="*60)
# 节点的二次筛选:

lilist = doc("ul li") #获取ul中所有的li
print(type(lilist)) #
print(lilist.find("a.bb")) #在结果的基础上再次查找
print(lilist.children("a.bb")) #在结果的基础上再次查找

print(doc("a.bb").parent()) #获取指定元素的直接父节点
#print(doc("a.bb").parents()) #获取指定元素的所有父节点
print(doc("a.bb").parent().siblings()) #获取兄弟节点

print("="*60)
# 遍历:

alist = doc("a")
for a in alist.items():
    print(a.attr.href)
    #print(a.attr('href')) #同上
    print(a.text())  #获取内容
    print(a.html())




工程师
2022-04-15 23:39:54     打赏
2楼
谢谢lz分享

专家
2022-04-16 00:03:19     打赏
3楼

感谢楼主的分享,很实用了。


专家
2022-04-16 08:09:14     打赏
4楼

python真是越来越抢眼了。辛苦那些开发工程师了


专家
2022-04-16 08:25:06     打赏
5楼

学习一下


工程师
2022-04-16 09:13:49     打赏
6楼

学习


院士
2022-04-16 09:18:07     打赏
7楼

感谢分享


专家
2022-04-16 09:34:18     打赏
8楼

感谢分享


专家
2022-04-16 09:43:40     打赏
9楼

谢谢楼主分享


专家
2022-04-16 12:22:14     打赏
10楼

学习了


共23条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]