PyQuery库的使用(上篇)
PyQuery库的使用
基本介绍:PyQuery库是一个强大又灵活的第三方网页解析库,如果你觉得正则写起来麻烦,觉得BeautifulSoup的语法太难记,又熟悉jQuery的语法,那么PyQuery是你最好的选择。
PyQuery库的安装: 1. 打开cmd
2. 输入pip install pyquery
1. 初始化
1.1 字符串初始化
from pyquery import PyQuery
html = '''
<body link="#1024ee" class="abv-115-control">
<div id="header" >
<span id="suggest-align" >
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度">百度
<input type="hidden" name="src" class="src" value="srp">
<input type="hidden" name="fr" value="se7_newtab_new">
<input type="hidden" name="psid" value="">
</span><input type="submit" value="搜索" class="s_btn">
'''
doc = PyQuery(html) #初始化
print(doc('input')) #打印input标签
<input type="text" id="keyword" name="q" value="百度"/>百度
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
<input type="submit" value="搜索" class="s_btn"/>
1.2 URL初始化
from pyquery import PyQuery
doc = PyQuery(url = 'https://huquan1996.github.io/') #初始化
print(doc('title')) 查找所有的title标签
File "<ipython-input-18-f0d80c51cf6d>", line 14
print(doc('title')) 查找所有的title标签
^
SyntaxError: invalid syntax
1.3 文件初始化
from pyquery import PyQuery
doc = PyQuery(filename='C://Users//Administrator//Desktop//测试.html')
#本地文本的地址 "\"要换成“//”
print(doc('input')) #查找所有的input的标签
<input type="text" id="keyword" name="q" value="百度"/>ç¾åº¦
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
<input type="submit" value="搜索" class="s_btn"/>
<input type="text" id="keyword" name="q" value="百度"/>ç¾åº¦
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
<input type="submit" value="搜索" class="s_btn"/>
2. 基本CSS选择器
CSS:层叠样式表,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言
from pyquery import PyQuery
doc = PyQuery(filename='C://Users//Administrator//Desktop//测试.html')
print(doc('#header .src')) # 井号表示id,点表示class
#(这句代码是要在id=header的标签下查找class=src的标签)
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="src" class="src" value="srp"/>
3. 查找元素
3.1 查找子元素
html = '''
<body link="#1024ee" class="abv-115-control">
<div id="header" >
<span id="suggest-align" >
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度">百度
<input type="hidden" name="src" class="src" value="srp">
<input type="hidden" name="fr" value="se7_newtab_new">
<input type="hidden" name="psid" value="">
</span><input type="submit" value="搜索" class="s_btn">
'''
from pyquery import PyQuery
doc = PyQuery(html)
print(doc)
items=doc('span') #查找所有的span标签
print(items)
lis = items.find('.src') #在items中查找所有class=src的标签
print(type(lis)) #打印lis 的类型
print(lis)
lis = items.children() #查找items所有的子标签
print(type(lis))
print(lis)
lis = items.children('.src') #在items 的子标签中查找class=src 的标签
print(lis)
<div id="header">
<span id="suggest-align">
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度"/>百度
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
</span><input type="submit" value="搜索" class="s_btn"/>
</div>
<span id="suggest-align">
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度"/>百度
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
</span>
<class 'pyquery.pyquery.PyQuery'>
<input type="hidden" name="src" class="src" value="srp"/>
<class 'pyquery.pyquery.PyQuery'>
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度"/>百度
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
<input type="hidden" name="src" class="src" value="srp"/>
3.2 查找父元素
html = '''
<body link="#1024ee" class="abv-115-control">
<div id="header" >
<span id="suggest-align" >
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度">百度
<input type="hidden" name="src" class="src" value="srp">
<input type="hidden" name="fr" value="se7_newtab_new">
<input type="hidden" name="psid" value="">
</span><input type="submit" value="搜索" class="s_btn">
'''
from pyquery import PyQuery
doc = PyQuery(html)
items = doc('.src') #查找class=src的标签
print(items.parent()) #查找items的所有父标签
print(type(items.parent()))
<span id="suggest-align">
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度"/>百度
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>
</span>
<class 'pyquery.pyquery.PyQuery'>
3.3 查找兄弟元素
html = '''
<body link="#1024ee" class="abv-115-control">
<div id="header" >
<span id="suggest-align" >
<a href="javascript:;" title="清空">清空</a>
<input type="text" id="keyword" name="q" value="百度">百度
<input type="hidden" name="src" class="src" value="srp">
<input type="hidden" name="fr" value="se7_newtab_new">
<input type="hidden" name="psid" value="">
</span><input type="submit" value="搜索" class="s_btn">
'''
from pyquery import PyQuery as pq
doc = pq(html)
imp = doc('#keyword') #查找id为keyword的标签
print(imp)
print(imp.siblings()) #查找所有兄弟标签
<input type="text" id="keyword" name="q" value="百度"/>百度
<a href="javascript:;" title="清空">清空</a>
<input type="hidden" name="src" class="src" value="srp"/>
<input type="hidden" name="fr" value="se7_newtab_new"/>
<input type="hidden" name="psid" value=""/>

浙公网安备 33010602011771号