一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

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

 子歌-特斯拉 2016-10-11

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:///)是一個(gè)優(yōu)美的擴(kuò)展庫(kù),用來(lái)快速解析XML以及HTML文檔 即使所處理的標(biāo)簽非常混亂。我們也將使用 Requests (http://docs./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 htmlimport requests

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

page = requests.get('http://econpy./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:

Carson Busses
$29.95

知道這個(gè)后,我們可以創(chuàng)建正確的XPath查詢并且使用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: ', buyersprint 'Prices: ', pricesBuyers: ['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)存中。現(xiàn)在我們可以對(duì)它做各種很酷的事情了: 我們可以使用Python分析它,或者我們可以將之保存為一個(gè)文件并向世界分享。

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本少妇三级三级三级| 国产精品一区二区视频大全| 东京不热免费观看日本| 日本精品中文字幕在线视频 | 激情三级在线观看视频| 成人日韩在线播放视频| 国产精品刮毛视频不卡| 丝袜美女诱惑在线观看| 操白丝女孩在线观看免费高清| 男人和女人草逼免费视频| 日本女优一区二区三区免费| 草草视频福利在线观看| 亚洲精品国男人在线视频| 粗暴蹂躏中文一区二区三区| 最近最新中文字幕免费| 日韩中文字幕人妻精品| 国产精品免费视频视频| 欧美日本亚欧在线观看| 大香蕉久草网一区二区三区| 日韩欧美国产精品中文字幕| 日韩欧美一区二区久久婷婷| 好吊视频一区二区在线| 国产亚洲精品岁国产微拍精品| 午夜午夜精品一区二区| 国产又粗又猛又爽色噜噜| 福利新区一区二区人口| 中国黄色色片色哟哟哟哟哟哟| 欧美日韩免费黄片观看| 加勒比东京热拍拍一区二区| 九九蜜桃视频香蕉视频| 99热在线播放免费观看| 在线播放欧美精品一区| 日本三区不卡高清更新二区| 九九久久精品久久久精品| 亚洲精品国产第一区二区多人| 婷婷伊人综合中文字幕| 欧美激情一区二区亚洲专区| 少妇熟女亚洲色图av天堂| 亚洲熟妇熟女久久精品 | 亚洲中文字幕有码在线观看| 在线九月婷婷丁香伊人|