写在前面
用了两天的PyQuery来做爬虫,但对这个库还是云里雾里的,今天特意抽空总结一下,下面可以先看他的源码。
这里贴出网址:https://github.com/gawel/pyquery/
其实我们用这个库,常用的方法也就那几个,我也是简单总结一下最常用的方法的用法。
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"><a href="link5.html">fifth item</a></li>
</ul>
</div>
'''
常用方法
1、PyQuery是个类
from pyquery import PyQuery as pq
doc = pq(html) #对这个类进行实例化
2、查找元素及其子元素
from pyquery import PyQuery as pq
doc = pq(html)
items = doc('.list')
print(items)
lis = items.find('li') #查找类名为list标签的子标签li
print(lis)
--------------------------------------------------------
还可以这么写
lis=doc(".list li") #list与li用空格隔开
3、查找父元素和兄弟元素
我感觉没啥用,现在还没用过,就不写了,以后感觉有用了,用到了在写。(可能是我刚开始学,还太菜,不懂得这两个的好处)
4、伪类选择器
html = '''
<div class="wrap">
<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"><a href="link5.html">fifth item</a></li>
</ul>
</div>
</div>
'''
-----------------------------------
from pyquery import PyQuery as pq
doc = pq(html)
li = doc('li:first-child') #获取第一个li
print(li)
li = doc('li:last-child') #获取最后一个li
print(li)
li = doc('li:nth-child(2)') #获取第二个li
print(li)
li = doc('li:gt(2)') #获取最后两个li
print(li)
li = doc('li:nth-child(2n)') #获取编号为偶数的li,以0开始编号
print(li)
li = doc('li:contains(second)') #获取内容中包含字符串 "second" 内容的li
print(li)
5、获取文本
用到text()方法即可
html = '''
<div class="wrap">
<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"><a href="link5.html">fifth item</a></li>
</ul>
</div>
</div>
'''
from pyquery import PyQuery as pq
doc = pq(html)
a = doc('.item-0.active a')
print(a)
print(a.text())
写在最后
以上代码全部来源于崔庆才大神的教程,如有侵权,联系删除!!!