pyquery库

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的子元素
原文地址:https://www.cnblogs.com/Wang-Y/p/9359635.html