@qinian
2018-07-22T07:27:37.000000Z
字数 1273
阅读 1121
爬虫
pyquery允许您在xml文档上进行jquery查询。API尽可能与jquery类似。pyquery使用lxml进行快速xml和html操作。参考:手册
1、初始化处理
html = '''<div id="wrap"><ul class="s_from">asdasd<link href="http://asda.com">asdadasdad12312</link><link href="http://asda1.com">asdadasdad12312</link><link href="http://asda2.com">asdadasdad12312</link></ul></div>'''
from pyquery import PyQuery as pqfrom lxml import etree#传html,传url,传文件。doc = pq(html)doc = pq(url = 'http://www.baidu.com')doc = pq(friename = 'demo.html')
2、基本操作
1、查找子节点,父节点,兄弟节点
items=doc("#wrap") #定位到这个id标签link = items.find('.s_from') # 找到items里面这个节点link = items.children() #找到items里面所有节点。link = items.children('link') #所有节点再找到link点items=doc(".s_from") #父节点parent_href=items.parent() #一个父节点parent_href=items.parents()#所有父节点siblings_href=items.siblings()siblings_href=items.siblings(’id') #找到兄弟节点中有这个标签的print(doc('#container .list li')) #查找id为container里面的class为list的li标签
2、节点的遍历
list = doc("link").items()for lt in list:print(lt)带有items属性的节点可以循环
3、获取节点属性,文本,标签中html代码
its=doc("link").items()for it in its:print(it.attr('href')) # attr属性值print(it.attr.href)its=doc("link").items()for it in its:print(it.text())its=doc("link").items()for it in its:print(it.html())
4、DO操作
.addClass(value):添加标签.removerClass(value):移除标签.hasClass(name):判断是否包含指定的 class,返回 True 或 False;
5、伪类选择器
较少用到