爬虫---PyQuert简介

  今天写一篇最近刚学习的一个第3方库pyquery,pyquery比bs4,lxml更强大的一个网页解析工具。

 

什么是pyQuery

Pyquery是python的第3方库,PyQuery库也是一个非常强大又灵活的网页解析库,它提供了和jQuery 类似的语法来解析HTML 文梢,支持css 选择器,使用非常方便。Beautifu l Soup 一样,初始化PyQuery 的时候,也需要传入HTML 文本来初始化一个PyQue1y对象。它的初始化方式有多种,比如直接传入字符串,传入URL,传人文件名

官方文档:http://pyquery.readthedocs.io/en/latest/

 

安装PyQuery

# pip安装
pip install pyquery

 

 

PyQuery使用

写一个简单的html供下面学习

text =
'''
<html> <body> <div id="test"> <ul class="list"> <li class="item-0"><a href="link1.html">今天天气</a></li> <li class="item-1"><a href="link2.html">明天天气</a></li> <li class="item-2"><a href="link3.html">后天天气</a></li> <li class="item-3"><a href="link4.html">周末天气</a></li> </ul> </div> </body> </html> '''

基本css选择器

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
# 通过css选择器先查找id再查找class
item = doc('#test .list')
print(item)

代码结果:
<ul class="list">
<li class="item-0"><a href="link1.html">今天天气</a></li>
<li class="item-1"><a href="link2.html">明天天气</a></li>
<li class="item-2"><a href="link3.html">后天天气</a></li>
<li class="item-3"><a href="link4.html">周末天气</a></li>
</ul>

查找子节点

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
# 通过css选择器先查找id再查找class
item = doc('#test .list')
# 查找子节点li
child = item.children('li')
# 或者使用find()函数
# child = item.find('li')
print(child)

代码结果:
<li class="item-0"><a href="link1.html">今天天气</a></li>
<li class="item-1"><a href="link2.html">明天天气</a></li>
<li class="item-2"><a href="link3.html">后天天气</a></li>
<li class="item-3"><a href="link4.html">周末天气</a></li>

查找父节点

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
# 通过css选择器先查找id再查找class
item = doc('#test .list')
# 查找父节点
container = item.parent()
print(container)

代码结果:
<div id="test">
<ul class="list">
<li class="item-0"><a href="link1.html">今天天气</a></li>
<li class="item-1"><a href="link2.html">明天天气</a></li>
<li class="item-2"><a href="link3.html">后天天气</a></li>
<li class="item-3"><a href="link4.html">周末天气</a></li>
</ul>
</div>

查找兄弟节点

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
# 查找兄弟其中一个
item = doc('.item-0')
# 查找兄弟节点
xiongdi = item.siblings('li')
print(xiongdi)

代码结果:
<li class="item-1"><a href="link2.html">明天天气</a></li>
<li class="item-2"><a href="link3.html">后天天气</a></li>
<li class="item-3"><a href="link4.html">周末天气</a></li>

遍历读取内容

1、遍历读取a标签

这个地方需要使用一个方法items(),使用该方法后得到一个生成器

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
item = doc('.list a').items()
for i in item:
    print(i)

代码结果:
<a href="link1.html">今天天气</a>
<a href="link2.html">明天天气</a>
<a href="link3.html">后天天气</a>
<a href="link4.html">周末天气</a>

2、获取href的值

这个地方需要用到attr()方法

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
item = doc('.list a').items()
for i in item:
    print(i.attr('href'))


代码结果:
link1.html
link2.html
link3.html
link4.html

3、获取a标签下的文字

通过调用text()方法来实现

# 导入pyquery
from pyquery import PyQuery as pq
# 创建对象
doc = pq(text)
item = doc('.list a').items()
for i in item:
    print(i.text())


代码结果:
今天天气
明天天气
后天天气
周末天气

 下一篇通过简单的案例更加深刻的了解pyquery库~~~~

 

写了一些简单的介绍,还是那一句话,方法多多种,喜欢那种用那种~~~大家喜欢的话,也可以点个关注哈

转载于:https://www.cnblogs.com/qican/p/11209043.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值