python爬虫学习之路(5)--pyquery

最近学了Xpath,Beautiful Soup以及pyquery三种网页解析库。但可能由于学习的较浅的原因,个人认为这三种库的功能大致相同。所以这里只进行自己比较喜欢的pyquery的学习记录。

准备

下载pyquery模块

初始化工作及基本功能演示

老规矩,直接写代码,详细看注释,可以自己尝试一下

基本CSS选择器及进行遍历

html ='''
<div id="container">
<ul class='list'>
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html"> second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold"> third item</span></a></li>
<li class ="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0">< href="link5.html">fifth item</a></li>
</ul>
</div>
'''
from pyquery import Pyquery as pq

#初始化,如果是文件,可以doc = pq(filename="xxx")
doc=pq(html)

#选出id为container, class为list中的<li>标签
print(doc('#container .list li'))

#使用items()方法,得到一个生成器
lis = doc('li').items()
for li in lis:
	print(li)

节点的选择

html ='''
<div id="container">
<ul class='list'>
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html"> second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold"> third item</span></a></li>
<li class ="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0">< href="link5.html">fifth item</a></li>
</ul>
</div>
'''
from pyquery import Pyquery as pq
doc = pq(html)
items = doc('.list')

#可以看一下items的种类
print(type(items))
print(items)

#find()查找所有子孙节点
lis = items.find('li')
print(type(lis))
print(lis)

#children查找所有子节点,并且可以写出筛选条件,以后的以此类推
#查找Items中所有含类active的子节点
lis = items.children('.active')
print(lis)

#直接父节点parent()
lis = items.parent()
print(lis)

#祖先节点parents() 
lis = items.parents()
print(lis)

#兄弟节点siblings()
li = doc('list .item-0.active')
print(li.siblings())

获取信息

html ='''
<div id="container">
<ul class='list'>
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html"> second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class="bold"> third item</span></a></li>
<li class ="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0">< href="link5.html">fifth item</a></li>
</ul>
</div>
'''
from pyquery import PyQuery as pq
doc =pq(html)
a = doc('.item-0.active a)

#用attr获取属性,以下两种效果一样
print(a.attr('href'))
print(a.attr.href)

#用text()获取内部文本,
print(a.text())

#用html()获取html文本,只返回符合条件的第一个,也就是把标签什么的都打印出来
print(a.html())



下面来个实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值