目录
pyquery库
侧重于css选择器,JQuery
安装:pip3 install pyquery
GitHub:https://github.com/gawel/pyquery
PyPI:https://pypi.python.org/pypi/pyquery
官方文档:http://pyquery.readthedocs.io
DOM操作文档:http://pyquery.readthedocs.io/en/latest/api.html
CSS选择器参考:http://www.w3school.com.cn/css/index.asp
初始化
from pyquery import PyQuery as pq
doc = pq(html) # 通过html字符串初始化PyQuery对象
doc = pq(url='http://cuiqingcai.com') # 通过url,相当于pq(requests.get('http://cuiqingcai.com').text)
doc = pq(filename='demo.html') # 通过文件初始化
基本CSS选择器
from pyquery import PyQuery as pq
doc = pq(html)
doc('#container .list li') # 直接向pyquery对象中传入css选择器,doc.css()支持更多选择器
函数操作
函数和jQuery中函数的用法完全相同,函数中也可以传入选择器
查找节点
方法 | 作用 |
---|---|
find(): | 的查找范围是节点的所有子孙节点 |
children(): | 查找子节点 |
parent(): | 获取某个节点的父节点 |
parents(): | 获取祖先节点 |
siblings(): | 获取兄弟节点 |
对于多个返回结需要遍历获取,items()方法后,会得到一个生成器
获取信息
- attr()方法:来获取属性,传入属性的名称,就可以得到这个属性值,a.attr('herf'),返回结果包含多个节点时,调用attr()方法,只会得到第一个节点的属性
- attr属性:获取属性,a.attr.href
- text()方法:获取其内部的纯文本,a.text(),返回结果包含多个节点时调用,将所有节点取文本之后用空格合并成一个字符串
- html()方法:获取这个节点内部的HTML文本,返回结果包含多个节点时调用html()方法返回的是第一个节点的内部HTML文本
DOM节点操作
- addClass(),removeClass():动态增加和删除节点的class属性
- attr('属性名', '属性值')、text('文本内容')和html('html代码'):传入相应内容
- remove(),append()、empty()和prepend():删除,父元素最后部分插入标记,清空标记内容,父元素最前部分插入标记
伪类选择器
li = doc('li:first-child')#第一个子元素
li = doc('li:last-child')#最后一个子元素
li = doc('li:nth-child(2)')#第二个子元素
li = doc('li:gt(2)')#大于2的子元素
li = doc('li:nth-child(2n)')#偶数个子元素
li = doc('li:contains(second)')#内容有second的子元素