pyquery 
是模仿 jQuery 去做的,是一个强大的网页解析库。  
在爬虫的过程中,主要负责数据解析,将html数据转化为  
一、基本用法 
import requests
from pyquery import PyQuery as pq
if __name__ == '__main__':
    rsp=requests.get('http://127.0.0.1/crawler/spider.html')
    rsp.encoding='utf-8'
    doc=pq(rsp.text)
    doc.encoding='utf-8'
    print(doc('body h2'))			#选择body 中的内层元素
  
二、CSS选择器 
如果想要输出 class 要有 . 例如:print(doc('.class值'))  
如果想要输出 id,要有 # 例如:print(doc('#id值'))  
三、查找元素 
find方法,也区分 class 和 id,支持 CSS选择  
doc=pq(rsp.text)
print(doc.find('.Buffedon'))
  
四、获取父子节点,兄弟标签 
父节点		 doc('p').parents()
子节点		 doc('p').parent
兄弟节点	doc('p').siblings()		doc('p').siblings('.class1')		
  
遍历子节点 
doc=pq(rsp.text)
body0=doc('head').items()       #生成一个迭代器
print(type(body0))
print('-'*60)
for i in body0:
    print(type(i))
    print(i)
  
五、获取信息 
1、获取属性 
rint(doc('body p'))
print(doc('body p').attr.name)
print(doc('body img').attr.src)
  
   
2、获取文本 
print(doc('head title'))
print(doc('head title').text())
  
   
3、获取HTML 
可以获取指定标签内的所有内容,包括html代码  
print(doc('head'))
print(doc('head').html())           #获取 head标签的内容
  
   
4、attr 和 css 
li=doc('.class0')
print(li)
li.attr('name','link')          #添加一个 name=link 的属性
li.css('font-size','4px')       #添加一个 font-size=4px 的属性
  
5、remove 
某些时候,一个body标签中不仅有HTML代码,还有文本。如果只想获取文本,那么就需要先移除其他标签  
doc('body').find('p').remove()			#移除body 中的 p标签
  
参考 
视频:https://www.bilibili.com/video/BV1a7411f76Z?p=12  
pyquery 完整API:https://pythonhosted.org/pyquery/api.html 
                
                
                
        
        
    
 
 |