日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

Python使用lxml模块和Requests模块抓取HTML页面的教程

發布時間:2025/3/20 HTML 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python使用lxml模块和Requests模块抓取HTML页面的教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Web抓取

Web站點使用HTML描述,這意味著每個web頁面是一個結構化的文檔。有時從中 獲取數據同時保持它的結構是有用的。web站點不總是以容易處理的格式, 如 csv 或者 json 提供它們的數據。

這正是web抓取出場的時機。Web抓取是使用計算機程序將web頁面數據進行收集 并整理成所需格式,同時保存其結構的實踐。

lxml和Requests

lxml(http://lxml.de/)是一個優美的擴展庫,用來快速解析XML以及HTML文檔 即使所處理的標簽非?;靵y。我們也將使用 Requests (http://docs.python-requests.org/en/latest/#)模塊取代內建的urllib2模塊,因為其速度更快而且可讀性更好。你可以通過使用 pip install lxml 與 pip install requests 命令來安裝這兩個模塊。

讓我們以下面的導入開始:

from lxml import html import requests

下一步我們將使用 requests.get 來從web頁面中取得我們的數據, 通過使用 html 模塊解析它,并將結果保存到 tree 中。

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' page = requests.get('http://econpy.pythonanywhere.com/ex/001.html') tree = html.fromstring(page.text)

tree 現在包含了整個HTML文件到一個優雅的樹結構中,我們可以使用兩種 方法訪問:XPath以及CSS選擇器。在這個例子中,我們將選擇前者。

XPath是一種在結構化文檔(如HTML或XML)中定位信息的方式。一個關于XPath的 不錯的介紹參見 W3Schools 。

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

在進行一次快速分析后,我們看到在頁面中的數據保存在兩個元素中,一個是title是 ‘buyer-name’ 的div,另一個class是 ‘item-price’ 的span:

知道這個后,我們可以創建正確的XPath查詢并且使用lxml的 xpath 函數, 像下面這樣:

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

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

我們可以考慮一些更酷的想法:修改這個腳本來遍歷該例數據集中剩余的頁面,或者 使用多線程重寫這個應用從而提升它的速度。

總結

以上是生活随笔為你收集整理的Python使用lxml模块和Requests模块抓取HTML页面的教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。