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="&#x767E;&#x5EA6;"/>百度
        <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="&#x641C;&#x7D22;" 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="&#xE7;&#x99;&#xBE;&#xE5;&#xBA;&#xA6;"/>ç¾åº¦
        <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="&#xE6;&#x90;&#x9C;&#xE7;&#xB4;&#xA2;" class="s_btn"/>
    <input type="text" id="keyword" name="q" value="&#xE7;&#x99;&#xBE;&#xE5;&#xBA;&#xA6;"/>ç¾åº¦
        <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="&#xE6;&#x90;&#x9C;&#xE7;&#xB4;&#xA2;" 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="&#x6E05;&#x7A7A;">清空</a>
        <input type="text" id="keyword" name="q" value="&#x767E;&#x5EA6;"/>百度
        <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="&#x767E;&#x5EA6;"/>百度

<a href="javascript:;" title="&#x6E05;&#x7A7A;">清空</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=""/>
      
posted @ 2018-07-23 15:00  jixn  阅读(157)  评论(0)    收藏  举报