爬虫4之pyquery
pyquery
初始化
字符串初始化
from pyquery import PyQuery as pq
doc = pq(html)#html为需要处理的内容
#方法与CSS选择器相同
print(doc('li'))
URL初始化
from pyquery import PyQuery as pd
doc = pq(url='http://www/baidu.com')
print(doc('head'))
文件初始化
doc = pq(filename='demo.html')
基本CSS选择器
id# class. tag none
查找元素
子元素
items = doc('.list')
#查找所有符合条件的内层元素
lis = items.find('li')
#查找直接子元素
lis = items.children()
#查找子元素的class为某项
lis = items.children('.active')
父元素
items.parent()
items.parents()
parents('.wrap')
兄弟元素
li = doc('.list .item-0.active') #同时包括item-0和active两个class
li.siblings()
li.siblings('.active')
遍历
单个元素
lis = doc('li').items
for li in lis:
do sth.
获取信息
获取属性
a.attr('href')
a.attr.href
获取文本
a.text()
获取HTML
li.html()
DOM操作
addClass, removeClass
li.removeClass('active')
li.addClass('active')
attr. css
#改变或添加属性
li.attr('name','link')
li.css('font-size', '14px')
remove
wrap = doc('.wrap')
wrap.find('p').remove()
伪类选择器
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)')#根据文本选择