欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲(chóng)輔助利器PyQuery模塊的安裝使用攻略

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

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è)類(lèi)似jquery的python庫(kù),可以使用像jquery那樣的語(yǔ)法來(lái)提取網(wǎng)頁(yè)中的任何數(shù)據(jù),這個(gè)用于html網(wǎng)頁(yè)的數(shù)據(jù)提取和挖掘還是一個(gè)很不錯(cuò)的第三方庫(kù)的。下面我們來(lái)看下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,和上面的操作方法沒(méi)有任何區(qū)別。這種方法默認(rèn)使用urllib模塊進(jìn)行http請(qǐng)求,但如果你的系統(tǒng)中安裝了requests的話,那么就會(huì)使用requests來(lái)進(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)

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

利用pyquery抓取豆瓣電影top250

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

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
怪蜀黍和小蘿莉不得不說(shuō)的故事。

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

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

美麗人生
9.5
最美的謊言。

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

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

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

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

盜夢(mèng)空間
9.2
諾蘭給了我們一場(chǎng)無(wú)法盜取的夢(mèng)。

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

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

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

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

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

大話西游之大圣娶親
9.1
一生所愛(ài)。

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

亂世佳人
9.2
Tomorrow is another day.

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

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

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

楚門(mén)的世界
9.0
如果再也不能見(jiàn)到你,祝你早安,午安,晚安。

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

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

羅馬假日
8.9
愛(ài)情哪怕只有一天。

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

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

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

相關(guān)文章

  • 快速上手Python Kafka庫(kù)安裝攻略

    快速上手Python Kafka庫(kù)安裝攻略

    想要在Python中使用Kafka庫(kù)嗎?不用擔(dān)心,我們的安裝指南將幫助你快速上手,無(wú)論你是初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,這篇指南都能滿足你的需求,跟著我們一起來(lái)探索如何輕松安裝Python Kafka庫(kù)吧!
    2023-12-12
  • 在pycharm中文件取消用 pytest模式打開(kāi)的操作

    在pycharm中文件取消用 pytest模式打開(kāi)的操作

    這篇文章主要介紹了在pycharm中文件取消用 pytest模式打開(kāi)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Ubuntu配置Python環(huán)境的超詳細(xì)教程

    Ubuntu配置Python環(huán)境的超詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于Ubuntu配置Python環(huán)境的超詳細(xì)教程,文中通過(guò)代碼示例將配置的過(guò)程介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Python使用bar繪制堆積/帶誤差棒柱形圖的實(shí)現(xiàn)

    Python使用bar繪制堆積/帶誤差棒柱形圖的實(shí)現(xiàn)

    本文先講解bar參數(shù)如何使用,然后分別演示堆積柱形圖和帶誤差柱形圖畫(huà)法。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python找出list中最常出現(xiàn)元素的方法

    Python找出list中最常出現(xiàn)元素的方法

    這篇文章主要介紹了Python找出list中最常出現(xiàn)元素的方法,給出了三種常用的方法供大家對(duì)比參考,需要的朋友可以參考下
    2016-06-06
  • 在Python函數(shù)中輸入任意數(shù)量參數(shù)的實(shí)例

    在Python函數(shù)中輸入任意數(shù)量參數(shù)的實(shí)例

    今天小編就為大家分享一篇在Python函數(shù)中輸入任意數(shù)量參數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python Docx庫(kù)完美操作word文檔實(shí)例探究

    Python Docx庫(kù)完美操作word文檔實(shí)例探究

    這篇文章主要為大家介紹了Python Docx庫(kù)完美操作word文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python GUI布局尺寸適配方法

    Python GUI布局尺寸適配方法

    今天小編就為大家分享一篇Python GUI布局尺寸適配方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 詳解Python中的文件操作

    詳解Python中的文件操作

    在日常生活中,文件操作主要包括打開(kāi)、關(guān)閉、讀、寫(xiě)等操作,這篇文章主要為大家詳細(xì)介紹了Python中這些文件操作的實(shí)現(xiàn),需要的可以了解下
    2023-07-07
  • Python邊緣檢測(cè)之prewitt,sobel和laplace算子詳解

    Python邊緣檢測(cè)之prewitt,sobel和laplace算子詳解

    這篇文章主要為大家詳細(xì)介紹了Python邊緣檢測(cè)中prewitt、sobel和laplace算子的使用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-04-04

最新評(píng)論