常用抽取網頁數據的方式有三種:正則表達式、Beautiful Soup、lxml
正則表達式有個很大的缺點是難以構造、可讀性差、不易適用未來網頁的變化。寫一段偽代碼:
import reurl = 'http://xxxx.com/sdffs'html = download(url)re.findall('正則表達式', html)這是一個非常流行的python模塊。安裝命令如下:
pip install beautifulsoup4使用此模塊的第一步是將已下載的html內容解析為soup文檔。因許多html網頁格式不規范,Beautiful Soup可對其進行確定,將其調整為規范的html文件。 
Lxml是基于libxml2這一XML解析庫的python封裝。該模塊使用c語言編寫,解析速度比Beautiful Soup更快。 安裝命令如下:
pip install lxmlpip install CSSselect如下代碼,從html中獲取class=country的ul標簽下,li標簽id=a的文本,獲取li標簽class=b的文本 
| 抓取方法 | 性能 | 使用難度 | 安裝難度 | 
|---|---|---|---|
| 正則表達式 | 快 | 困難 | 簡單(內置模塊) | 
| Beautiful Soup | 慢 | 簡單 | 簡單(純python) | 
| Lxml | 快 | 簡單 | 相對困難 | 
通常,lxml是抓取數據最好的選擇,因為該方法既快速又健壯,而正則和Beautiful Soup只在某些特定場景下用。
新聞熱點
疑難解答