前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫PyQuery「建议收藏」

爬虫PyQuery「建议收藏」

作者头像
全栈程序员站长
发布2022-06-27 09:48:05
3470
发布2022-06-27 09:48:05
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

–爬虫pyquery 字符串初始化

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
print(doc('li'))  --其实就是个css选择器,选出了所有的li标签

url初始化

代码语言:javascript
复制
from pyquery import PyQuery as pq
doc=pq(url="http://www.baidu.com")
print(doc('head'))

文件初始化

代码语言:javascript
复制
from pyquery import PyQuery as pq
doc=pq(filename='demo.html')
print(doc('li'))

基本的css选择器

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
print(doc('#container.list li'))

#表示id .表示class,其他的用空格

查找元素

子元素

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
items=doc('.list')
lis=items.find('li')
print(lis)

children()函数查找子直接子标签,可以传参

父元素

代码语言:javascript
复制
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)

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
li=doc('.list .item-0.active')
print(li.siblings())

遍历

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
lis=doc('li').items()  --生成可遍历的对象,generator类型
for li in lis:
	print(li)

获取信息

获取属性

代码语言:javascript
复制
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

获取文本

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
a=doc('.item-0.active a')
print(a)
print(a.text())

获取html

代码语言:javascript
复制
html="""
	......
""""
from pyquery import PyQuery as pq
doc=pq(html)
a=doc('.item-0.active')
print(a)
print(a.html())

DOM操作 删除增加类 removeClass addClass

代码语言:javascript
复制
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

代码语言:javascript
复制
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:

代码语言:javascript
复制
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())

伪类选择器

代码语言:javascript
复制
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文本的元素

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133426.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档