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

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

 更新時間: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是一個類似jquery的python庫,可以使用像jquery那樣的語法來提取網(wǎng)頁中的任何數(shù)據(jù),這個用于html網(wǎng)頁的數(shù)據(jù)提取和挖掘還是一個很不錯的第三方庫的。下面我們來看下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ù)索引號獲取多個相同html元素中的某一個
print d('ul').children() # 獲取所有子元素
print d('ul').children().eq(0) #根據(jù)索引獲取子元素
print d('img').parents() # 獲取父元素
print d('#hi').next() # 獲取下一個元素
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文檔中的相對路徑變?yōu)榻^對路徑

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

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

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

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

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

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

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

d = pq(filename=path_to_html_file)

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

利用pyquery抓取豆瓣電影top250

看完了pyquery的語法,我們來看一個實例,抓取豆瓣電影top250。
因為豆瓣反爬蟲反的厲害,運行幾次就沒法再抓了,我只好先用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

運行下看看結(jié)果:

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

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

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

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

美麗人生
9.5
最美的謊言。

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

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

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

機器人總動員
9.3
小瓦力,大人生。

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

泰坦尼克號
9.1
失去的才是永恒的。

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

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

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

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

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

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

亂世佳人
9.2
Tomorrow is another day.

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

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

搏擊俱樂部
9.0
邪惡與平庸蟄伏于同一個母體,在特定的時間互相對峙。

楚門的世界
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
所以可以寫個循環(huán)把它們都抓下來。

相關(guān)文章

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

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

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

    python3.7簡單的爬蟲實例詳解

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

    通過pykafka接收Kafka消息隊列的方法

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

    Python實現(xiàn)控制臺中的進度條功能代碼

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

郎溪县| 卢氏县| 阜平县| 会东县| 名山县| 郎溪县| 平山县| 广宗县| 新邵县| 古蔺县| 澄江县| 海盐县| 宁波市| 温宿县| 特克斯县| 科尔| 繁峙县| 五大连池市| 敖汉旗| 崇阳县| 连云港市| 习水县| 晋州市| 龙岩市| 吉首市| 武川县| 富宁县| 屏南县| 宜丰县| 如皋市| 山西省| 邵阳市| 油尖旺区| 福清市| 清镇市| 东丰县| 南涧| 高青县| 龙海市| 尼玛县| 伊春市|