数据爬虫(六):爬虫PyQuery基本使用

PyQuery是Python中类似jQuery的库,适用于HTML解析。它提供了与jQuery相似的API,包括字符串、URL、文件初始化,CSS选择器,查找、遍历元素,获取文本和HTML内容,DOM操作如添加/删除类,修改属性和CSS等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyQuery简介

pyquery相当于jQuery的python实现,可以用于解析HTML网页等。它的语法与jQuery几乎完全相同,对于使用过jQuery的人来说很熟悉,也很好上手。

引用作者的原话就是:

“The API is as much as possible the similar to jquery.” 。

安装

使用 pip 或者 easy_install 都可以。
注意:由于 pyquery 依赖于 lxml ,要先安装 lxml ,否则会提示失败。

  1. 安装lxml:https://pypi.python.org/pypi/lxml/2.3/ (建议直接下载安装包,方便快捷);
  2. 安装pyquery:easy_install pyquery 或者pip install pyquery;
  3. 验证:输入 import pyquery 回车不报错即安装成功

初始化

有 4 种方法可以进行初始化:
可以通过传入 字符串、lxml、文件 或者 url 来使用PyQuery。

 

1

2

3

4

5

from pyquery import PyQuery as pq

from lxml import etree d = pq(“<html></html>”)#传入字符串

d = pq(etree.fromstring(“<html></html>”))#传入lxml

d = pq(url=‘http://google.com/’) #传入url

d = pq(filename=path_to_html_file) #传入文件

现在,d 就像 jQuery 中的 $ 一样了。

字符串初始化

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

html = '''

<div>

    <ul>

         <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>

'''

from pyquery import PyQuery as pq

doc = pq(html)

print(doc('li'))

查找所有的li标签。输出结果如下:

 

1

2

3

4

5

<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>

 

URL初始化

 

 

1

2

3

from pyquery import PyQuery as pq

doc = pq(url='http://www.baidu.com')

print(doc('head'))

选出百度网站里面head标签里面的内容。
输出结果如下:

 

1

<head><meta http-equiv="content-type" content="text/html;charset=utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=Edge"/><meta content="always" name="referrer"/><link rel="stylesheet" type="text/css" href="http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css"/><title>&#231;&#153;&#190;&#229;&#186;&#166;&#228;&#184;&#128;&#228;&#184;&#139;&#239;&#188;&#140;&#228;&#189;&#160;&#229;&#176;&#177;&#231;&#159;&#165;&#233;&#129;&#147;</title></head>

 

文件初始化

 

 

1

2

3

from pyquery import PyQuery as pq

doc = pq(filename='demo.html')

print(doc('li'))

 

基本CSS选择器

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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>

'''

from pyquery import PyQuery as pq

doc = pq(html)

print(doc('

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值