最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲輔助利器PyQuery模塊的安裝使用攻略

 更新時(shí)間:2016年04月24日 17:39:17   作者:onlyanyz  
這篇文章主要介紹了Python爬蟲輔助利器PyQuery模塊的安裝使用攻略,PyQuery可以方便地用來解析HTML內(nèi)容,使其成為眾多爬蟲程序開發(fā)者的大愛,需要的朋友可以參考下

Windows下的安裝:
下載地址:https://pypi.python.org/pypi/pyquery/#downloads
下載后安裝:

C:\Python27>easy_install E:\python\pyquery-1.2.4.zip 

也可以直接在線安裝:

C:\Python27>easy_install pyquery 

pyquery是一個(gè)類似jquery的python庫,可以使用像jquery那樣的語法來提取網(wǎng)頁中的任何數(shù)據(jù),這個(gè)用于html網(wǎng)頁的數(shù)據(jù)提取和挖掘還是一個(gè)很不錯(cuò)的第三方庫的。下面我們來看下pyquery的用法有哪些。

從html字符串中提取信息

#!/usr/bin/python
# -*- coding: utf-8 -*-

from pyquery import PyQuery as pq
html = '''
<html>
<head>
 <title>this is title</title>
</head>
<body>
 <p id="hi">Hello, World</p>
 <p id="hi2">Nihao</p>
 <div class="class1">
  <img src="1.jpg" />
 </div>
 <ul>
  <li>list1</li>
  <li>list2</li>
 </ul>
</body>
</html>
'''
d=pq(html)

print d('title') # 相當(dāng)于css選擇器,根據(jù)html標(biāo)簽獲取元素
print d('title').text() # text()方法獲取當(dāng)前選中的文本塊

print d('#hi').text() # 相當(dāng)于id選擇器,直接根據(jù)id名獲取元素
print d('p').filter('#hi2').text() # 可以根據(jù)id或class得到指定元素
print d('.class1') # 相當(dāng)于class選擇器
print d('.class1').html() # html()方法獲取當(dāng)前選中的html塊
print d('.class1').find('img').attr('src') # 查找嵌套元素,并選中屬性
print d('ul').find('li').eq(0).text() # 根據(jù)索引號(hào)獲取多個(gè)相同html元素中的某一個(gè)
print d('ul').children() # 獲取所有子元素
print d('ul').children().eq(0) #根據(jù)索引獲取子元素
print d('img').parents() # 獲取父元素
print d('#hi').next() # 獲取下一個(gè)元素
print d('#hi').nextAll() #獲取后面全部元素塊
print d('p').not_('#hi2') # 返回不匹配選擇器的元素
# 遍歷所有匹配的元素
for i in d.items('li'):
 print i.text()
print [i.text() for i in d.items('li')] # 遍歷用于列表推倒
print d.make_links_absolute(base_url='http://www.baidu.com') # 把html文檔中的相對(duì)路徑變?yōu)榻^對(duì)路徑

上面的代碼段給出了pyquery常用的操作方法。我們先定義了一段html代碼,然后利用pyquery的一系列方法對(duì)該html代碼進(jìn)行了操作,主要是獲取特定的元素以及文本等。當(dāng)然,pyquery不僅僅能夠獲取元素,還能進(jìn)行設(shè)置元素屬性、增加元素等功能,鑒于我們最常用的就是上面代碼中用到的方法,這里就不再對(duì)其他方法進(jìn)行介紹了。

從url或本地html文件中提取信息

當(dāng)然,pyquery也不僅僅可以解析像上面的html字符串,還可以這樣:

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

我們可以直接加載一個(gè)URL,和上面的操作方法沒有任何區(qū)別。這種方法默認(rèn)使用urllib模塊進(jìn)行http請(qǐng)求,但如果你的系統(tǒng)中安裝了requests的話,那么就會(huì)使用requests來進(jìn)行http請(qǐng)求,這也就意味著你可以使用requests的任何參數(shù),比如:

pq('http://www.baidu.com/', headers={'user-agent': 'pyquery'})

或者,如果你在你的本地已經(jīng)有了對(duì)應(yīng)的html文件,那么還可以這樣:

d = pq(filename=path_to_html_file)

上面的寫法直接指定了本地的html文件,且操作方法仍然與上面的相同。
可以看到,pyquery給我們提供充分的便利性來進(jìn)行任何元素的選取,就像jquery一樣。

利用pyquery抓取豆瓣電影top250

看完了pyquery的語法,我們來看一個(gè)實(shí)例,抓取豆瓣電影top250。
因?yàn)槎拱攴磁老x反的厲害,運(yùn)行幾次就沒法再抓了,我只好先用requests把頁面下載下來,直接使用pyquery分析頁面的方法來提取信息:

from pyquery import PyQuery as pq
import requests

head_req = {
 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
 'Referer':'https://movie.douban.com/top250?start=0',

}
r=requests.get("https://movie.douban.com/top250?start=0",headers=head_req)
with open("1.html","wb") as html:
 html.write(r.content)

d=pq(filename="1.html")

# print d('ol').find('li').html()
for data in d('ol').items('li'):
 print data.find('.hd').find('.title').eq(0).text()
 print data.find('.star').find('.rating_num').text()
 print data.find('.quote').find('.inq').text()
 print

運(yùn)行下看看結(jié)果:

肖申克的救贖
9.6
希望讓人自由。

這個(gè)殺手不太冷
9.4
怪蜀黍和小蘿莉不得不說的故事。

阿甘正傳
9.4
一部美國近現(xiàn)代史。

霸王別姬
9.4
風(fēng)華絕代。

美麗人生
9.5
最美的謊言。

千與千尋
9.2
最好的宮崎駿,最好的久石讓。

辛德勒的名單
9.4
拯救一個(gè)人,就是拯救整個(gè)世界。

海上鋼琴師
9.2
每個(gè)人都要走一條自己堅(jiān)定了的路,就算是粉身碎骨。

機(jī)器人總動(dòng)員
9.3
小瓦力,大人生。

盜夢空間
9.2
諾蘭給了我們一場無法盜取的夢。

泰坦尼克號(hào)
9.1
失去的才是永恒的。

三傻大鬧寶萊塢
9.1
英俊版憨豆,高情商版謝耳朵。

放牛班的春天
9.2
天籟一般的童聲,是最接近上帝的存在。

忠犬八公的故事
9.2
永遠(yuǎn)都不能忘記你所愛的人。

龍貓
9.1
人人心中都有個(gè)龍貓,童年就永遠(yuǎn)不會(huì)消失。

大話西游之大圣娶親
9.1
一生所愛。

教父
9.2
千萬不要記恨你的對(duì)手,這樣會(huì)讓你失去理智。

亂世佳人
9.2
Tomorrow is another day.

天堂電影院
9.1
那些吻戲,那些青春,都在影院的黑暗里被淚水沖刷得無比清晰。

當(dāng)幸福來敲門
8.9
平民勵(lì)志片。

搏擊俱樂部
9.0
邪惡與平庸蟄伏于同一個(gè)母體,在特定的時(shí)間互相對(duì)峙。

楚門的世界
9.0
如果再也不能見到你,祝你早安,午安,晚安。

觸不可及
9.1
滿滿溫情的高雅喜劇。

指環(huán)王3:王者無敵
9.1
史詩的終章。

羅馬假日
8.9
愛情哪怕只有一天。

當(dāng)然這只是第一頁的25條,我們已經(jīng)知道了豆瓣電影top250的url是

https://movie.douban.com/top250?start=0
start參數(shù)從0,每次加25,直到

https://movie.douban.com/top250?start=225
所以可以寫個(gè)循環(huán)把它們都抓下來。

相關(guān)文章

  • python 輸入字符串生成所有有效的IP地址(LeetCode 93號(hào)題)

    python 輸入字符串生成所有有效的IP地址(LeetCode 93號(hào)題)

    這篇文章主要介紹了python 生成所有有效的IP地址的方法,幫助大家解答題目,學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • python3.7簡單的爬蟲實(shí)例詳解

    python3.7簡單的爬蟲實(shí)例詳解

    這篇文章主要介紹了python3.7簡單的爬蟲實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 通過pykafka接收Kafka消息隊(duì)列的方法

    通過pykafka接收Kafka消息隊(duì)列的方法

    今天小編就為大家分享一篇通過pykafka接收Kafka消息隊(duì)列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python實(shí)現(xiàn)控制臺(tái)中的進(jìn)度條功能代碼

    Python實(shí)現(xiàn)控制臺(tái)中的進(jìn)度條功能代碼

    下面小編就為大家分享一篇Python實(shí)現(xiàn)控制臺(tái)中的進(jìn)度條功能代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • python適合做數(shù)據(jù)挖掘嗎

    python適合做數(shù)據(jù)挖掘嗎

    在本篇文章里小編給各位分享的是一篇關(guān)于python做數(shù)據(jù)挖掘的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python爬蟲采集微博視頻數(shù)據(jù)

    Python爬蟲采集微博視頻數(shù)據(jù)

    這篇文章主要介紹了利用Python爬蟲采集微博的視頻數(shù)據(jù),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-12-12
  • python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法

    python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法

    今天小編就為大家分享一篇python中struct模塊之字節(jié)型數(shù)據(jù)的處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python實(shí)現(xiàn)PS濾鏡特效之扇形變換效果示例

    Python實(shí)現(xiàn)PS濾鏡特效之扇形變換效果示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡特效之扇形變換效果,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)PS濾鏡扇形變換效果的原理與相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • python遞歸算法(無限遞歸,正常遞歸,階乘)

    python遞歸算法(無限遞歸,正常遞歸,階乘)

    本文主要介紹了python遞歸算法,包含無限遞歸,正常遞歸,階乘等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • selenium+python自動(dòng)化測試環(huán)境搭建步驟

    selenium+python自動(dòng)化測試環(huán)境搭建步驟

    在本文中小編給大家分享了關(guān)于selenium+python自動(dòng)化測試環(huán)境搭建的相關(guān)步驟以及知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考學(xué)習(xí)下。
    2019-06-06

最新評(píng)論

晴隆县| 岐山县| 沅江市| 东至县| 澄迈县| 滨州市| 当雄县| 泌阳县| 南江县| 沂水县| 响水县| 浙江省| 西林县| 汉源县| 嘉峪关市| 全州县| 荆门市| 宣汉县| 赞皇县| 甘肃省| 新余市| 夹江县| 小金县| 交城县| 屏南县| 阿巴嘎旗| 边坝县| 巫溪县| 监利县| 唐海县| 鄂伦春自治旗| 岐山县| 永修县| 双桥区| 巴东县| 瑞昌市| 衡东县| 大方县| 华蓥市| 镇坪县| 盈江县|