当前位置: 首页 > 工具软件 > PyQuery > 使用案例 >

pyquery

裘嘉木
2023-12-01

pyquery: HTML解析库

  • 直接解析 DOM 节点的结构,并通过 DOM 节点的属性快速进行内容提取。

初始化

字符串(HTML内容)初始化

html = '''
<div>
    <ul>
         <li class="item-0">first item</li>
         <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
     </ul>
 </div>
'''
from pyquery import PyQuery as pq
doc = pq(html)  # 把 HTML 的内容当作参数来初始化 pyquery 对象
print(doc('li'))  # 初始化的对象传入 CSS 选择器

运行结果:

<li class="item-0">first item</li>
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>

URL初始化

from pyquery import PyQuery as pq

doc = pq(url='https://XXX.com')  # 将网页源代码以字符串的形式传递给 pyquery 类。
# 等价于
# import requests
# doc = pq(requests.get('https://XXX.com').text)

print(doc('title'))

本地文件初始化

from pyquery import PyQuery as pq
doc = pq(filename='demo.html')  # 本地HTML文件,其内容是待解析的HTML字符串
print(doc('li'))

CSS选择器

print(doc('#container .list li'))
# 选取 id 为 container 的节点,然后再选取其内部 class 为 list 中的所有 li 节点
print(type(doc('#container .list li')))

获取节点的文本内容: .text()

for item in doc('#container .list li').items():
    print(item.text())

查找节点

查找节点的所有子孙节点:.find()

items = doc('.list')  # 选取 class 为 list 的节点
print(type(items))
print(items)
lis = items.find('li')  # 调用 find 方法,传入 CSS 选择器,选取其内部的 li 节点。

只查找子节点:.children()

lis = items.children('.active')

节点的直接父节点:.parent()

祖先节点:.parents()

兄弟节点:.siblings()

 类似资料:

相关阅读

相关文章

相关问答