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

Python使用lxml模塊和Requests模塊抓取HTML頁(yè)面的教程

 更新時(shí)間:2016年05月16日 18:53:56   作者:Kenneth Reitz  
用Pyhton自帶的urllib或urllib2模塊抓取網(wǎng)頁(yè)或許有些陳詞濫調(diào)了,今天我們就來(lái)玩兒些新鮮的,來(lái)看Python使用lxml模塊和Requests模塊抓取HTML頁(yè)面的教程:

Web抓取
Web站點(diǎn)使用HTML描述,這意味著每個(gè)web頁(yè)面是一個(gè)結(jié)構(gòu)化的文檔。有時(shí)從中 獲取數(shù)據(jù)同時(shí)保持它的結(jié)構(gòu)是有用的。web站點(diǎn)不總是以容易處理的格式, 如 csv 或者 json 提供它們的數(shù)據(jù)。

這正是web抓取出場(chǎng)的時(shí)機(jī)。Web抓取是使用計(jì)算機(jī)程序?qū)eb頁(yè)面數(shù)據(jù)進(jìn)行收集 并整理成所需格式,同時(shí)保存其結(jié)構(gòu)的實(shí)踐。

lxml和Requests
lxml(http://lxml.de/)是一個(gè)優(yōu)美的擴(kuò)展庫(kù),用來(lái)快速解析XML以及HTML文檔 即使所處理的標(biāo)簽非?;靵y。我們也將使用 Requests (http://docs.python-requests.org/en/latest/#)模塊取代內(nèi)建的urllib2模塊,因?yàn)槠渌俣雀於铱勺x性更好。你可以通過(guò)使用 pip install lxml 與 pip install requests 命令來(lái)安裝這兩個(gè)模塊。

讓我們以下面的導(dǎo)入開(kāi)始:

from lxml import html
import requests

下一步我們將使用 requests.get 來(lái)從web頁(yè)面中取得我們的數(shù)據(jù), 通過(guò)使用 html 模塊解析它,并將結(jié)果保存到 tree 中。

page = requests.get('http://econpy.pythonanywhere.com/ex/001.html')
tree = html.fromstring(page.text)

tree 現(xiàn)在包含了整個(gè)HTML文件到一個(gè)優(yōu)雅的樹(shù)結(jié)構(gòu)中,我們可以使用兩種 方法訪問(wèn):XPath以及CSS選擇器。在這個(gè)例子中,我們將選擇前者。

XPath是一種在結(jié)構(gòu)化文檔(如HTML或XML)中定位信息的方式。一個(gè)關(guān)于XPath的 不錯(cuò)的介紹參見(jiàn) W3Schools 。

有很多工具可以獲取元素的XPath,如Firefox的FireBug或者Chrome的Inspector。 如果你使用Chrome,你可以右鍵元素,選擇 ‘Inspect element',高亮這段代碼, 再次右擊,并選擇 ‘Copy XPath'。

在進(jìn)行一次快速分析后,我們看到在頁(yè)面中的數(shù)據(jù)保存在兩個(gè)元素中,一個(gè)是title是 ‘buyer-name' 的div,另一個(gè)class是 ‘item-price' 的span:

<div title="buyer-name">Carson Busses</div>
<span class="item-price">$29.95</span>

知道這個(gè)后,我們可以創(chuàng)建正確的XPath查詢(xún)并且使用lxml的 xpath 函數(shù), 像下面這樣:

#這將創(chuàng)建buyers的列表:
buyers = tree.xpath('//div[@title="buyer-name"]/text()')
#這將創(chuàng)建prices的列表:
prices = tree.xpath('//span[@class="item-price"]/text()')

讓我們看看我們得到了什么:

print 'Buyers: ', buyers
print 'Prices: ', prices
Buyers: ['Carson Busses', 'Earl E. Byrd', 'Patty Cakes',
'Derri Anne Connecticut', 'Moe Dess', 'Leda Doggslife', 'Dan Druff',
'Al Fresco', 'Ido Hoe', 'Howie Kisses', 'Len Lease', 'Phil Meup',
'Ira Pent', 'Ben D. Rules', 'Ave Sectomy', 'Gary Shattire',
'Bobbi Soks', 'Sheila Takya', 'Rose Tattoo', 'Moe Tell']

Prices: ['$29.95', '$8.37', '$15.26', '$19.25', '$19.25',
'$13.99', '$31.57', '$8.49', '$14.47', '$15.86', '$11.11',
'$15.98', '$16.27', '$7.50', '$50.85', '$14.26', '$5.68',
'$15.00', '$114.07', '$10.09']

恭喜!我們已經(jīng)成功地通過(guò)lxml與Request,從一個(gè)web頁(yè)面中抓取了所有我們想要的 數(shù)據(jù)。我們將它們以列表的形式存在內(nèi)存中?,F(xiàn)在我們可以對(duì)它做各種很酷的事情了: 我們可以使用Python分析它,或者我們可以將之保存為一個(gè)文件并向世界分享。

我們可以考慮一些更酷的想法:修改這個(gè)腳本來(lái)遍歷該例數(shù)據(jù)集中剩余的頁(yè)面,或者 使用多線(xiàn)程重寫(xiě)這個(gè)應(yīng)用從而提升它的速度。

相關(guān)文章

  • 如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng)

    如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng)

    本文主要介紹了如何使用Django默認(rèn)的Auth權(quán)限管理系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 基于Python實(shí)現(xiàn)股票數(shù)據(jù)分析的可視化

    基于Python實(shí)現(xiàn)股票數(shù)據(jù)分析的可視化

    在購(gòu)買(mǎi)股票的時(shí)候,可以使用歷史數(shù)據(jù)來(lái)對(duì)當(dāng)前的股票的走勢(shì)進(jìn)行預(yù)測(cè),這就需要對(duì)股票的數(shù)據(jù)進(jìn)行獲取并且進(jìn)行一定的分析。本文將介紹如何通過(guò)Python實(shí)現(xiàn)股票數(shù)據(jù)分析的可視化,需要的可以參考一下
    2021-12-12
  • 如何利用PyQt5美化你的GUI界面

    如何利用PyQt5美化你的GUI界面

    python的腳本開(kāi)發(fā)簡(jiǎn)單,有時(shí)候只需幾行代碼就能實(shí)現(xiàn)豐富的功能,而且python本身是跨平臺(tái)的,所以深受程序員的喜愛(ài),下面這篇文章主要給大家介紹了關(guān)于如何利用PyQt5美化你的GUI界面的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 詳解Python結(jié)合Genetic?Algorithm算法破解網(wǎng)易易盾拼圖驗(yàn)證

    詳解Python結(jié)合Genetic?Algorithm算法破解網(wǎng)易易盾拼圖驗(yàn)證

    很多網(wǎng)站在登錄或者注冊(cè)時(shí)都會(huì)遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個(gè)小碎片經(jīng)過(guò)重新組合成的一張整體。本文將和大家分享一個(gè)基于Python?Genetic?Algorithm的破解拼圖驗(yàn)證碼的辦法,需要的可以參考一下
    2022-02-02
  • 基于python tornado實(shí)現(xiàn)圖床功能

    基于python tornado實(shí)現(xiàn)圖床功能

    因?yàn)橘I(mǎi)了阿里/騰訊的云服務(wù)器,但是使用云存儲(chǔ)還需要收費(fèi),又加上家里正好有一臺(tái)nas,又加上閑的沒(méi)事,所以搞了一個(gè)小腳本,這個(gè)項(xiàng)目主要功能是為typora增加一個(gè)自定義圖床,本文給大家介紹基于python tornado實(shí)現(xiàn)圖床功能,感興趣的朋友一起看看吧
    2023-08-08
  • 如何使用Python?繪制瀑布圖

    如何使用Python?繪制瀑布圖

    這篇文章主要介紹了如何使用Python?繪制瀑布圖,我們一起了解瀑布圖的重要性,以及如何使用不同的繪圖庫(kù)繪制瀑布圖。瀑布圖是一種二維圖表,專(zhuān)門(mén)用于了解隨著時(shí)間或多個(gè)步驟或變量的增量正負(fù)變化的影響,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • python分析nignx訪問(wèn)日志腳本分享

    python分析nignx訪問(wèn)日志腳本分享

    這篇文章主要介紹了python分析nignx訪問(wèn)日志腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • Python DataFrame Rank詳解

    Python DataFrame Rank詳解

    在數(shù)據(jù)分析中,pandas庫(kù)的DataFrame對(duì)象的rank()方法可用于計(jì)算數(shù)據(jù)排名,處理重復(fù)值并支持多種參數(shù)定制排名規(guī)則,如ascending、axis、numeric_only等,是數(shù)據(jù)分析和競(jìng)賽中的有力工具
    2024-09-09
  • Python模塊文件結(jié)構(gòu)代碼詳解

    Python模塊文件結(jié)構(gòu)代碼詳解

    這篇文章主要介紹了Python模塊文件結(jié)構(gòu)代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python中空格的轉(zhuǎn)義字符方式

    Python中空格的轉(zhuǎn)義字符方式

    這篇文章主要介紹了Python中空格的轉(zhuǎn)義字符方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

巴楚县| 常州市| 兰州市| 贵德县| 晋宁县| 云龙县| 新巴尔虎右旗| 汝阳县| 永嘉县| 淮滨县| 长汀县| 宁安市| 蒙城县| 石家庄市| 海口市| 温宿县| 搜索| 南涧| 五原县| 运城市| 泗阳县| 古丈县| 来宾市| 青州市| 左权县| 纳雍县| 江山市| 西乌| 陇川县| 西畴县| 抚州市| 和田县| 基隆市| 镇原县| 江口县| 龙海市| 乐山市| 青浦区| 陇南市| 沁源县| 阜阳市|