大家好,又见面了,我是你们的朋友全栈君。
–爬虫pyquery
字符串初始化
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
print(doc('li')) --其实就是个css选择器,选出了所有的li标签
url初始化
from pyquery import PyQuery as pq
doc=pq(url="http://www.baidu.com")
print(doc('head'))
文件初始化
from pyquery import PyQuery as pq
doc=pq(filename='demo.html')
print(doc('li'))
基本的css选择器
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
print(doc('#container.list li'))
#表示id
.表示class,其他的用空格
查找元素
子元素
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
items=doc('.list')
lis=items.find('li')
print(lis)
children()函数查找子直接子标签,可以传参
父元素
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
items=doc('.list')
container=items.parent()
print(container)
parents()是返回祖先标签,有几个祖先返回几个值
parent=items.parents(’.wrap’) #只返回符合条件的祖先
print(parent)
兄弟元素(siblings)
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
li=doc('.list .item-0.active')
print(li.siblings())
遍历
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
lis=doc('li').items() --生成可遍历的对象,generator类型
for li in lis:
print(li)
获取信息
获取属性
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
a=doc('.item-0.active a')
print(a)
print(a.attr('href'))或者a.attr.href
获取文本
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
a=doc('.item-0.active a')
print(a)
print(a.text())
获取html
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
a=doc('.item-0.active')
print(a)
print(a.html())
DOM操作
删除增加类 removeClass addClass
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
li=doc('.item-0.active')
print(li)
li.removeClass('active')#在原文中把active这个单词删除了
print(li)
li.addClass('active')
print(li)
修改attr,css
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
li=doc('.item-0.active')
print(li)
li.attr('name','link')
print(li)
li.css('font-size','14px')
print(li)
remove:
html="""
<div class="wrap">
hello world
<p></p>
</div>
"""
from pyquery import PyQuery as pq
doc=pq(html)
wrap=doc('.wrap')
print(wrap.text()) #这样直接用text会把p标签也提取出来
wrap.find('p').remove() #如果你想只提取文字,那么你就要删除p标签
print(wrap.text())
伪类选择器
html="""
......
""""
from pyquery import PyQuery as pq
doc=pq(html)
li=doc('li:first-child')#获取li的第一个元素
li=doc('li:last-child') #获取最后一个元素
li=doc('li:nth-child(2)')#获取指定位置的元素,从1开始
li=doc('li:gt(2)')#序号大于2的,从0开始
li=doc('li:nth-child(2n)')#序号是偶数的元素
li=doc('li:contains(second)')#包含second文本的元素
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133426.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...