常用抽取網(wǎng)頁(yè)數(shù)據(jù)的方式有三種:正則表達(dá)式、Beautiful Soup、lxml
正則表達(dá)式有個(gè)很大的缺點(diǎn)是難以構(gòu)造、可讀性差、不易適用未來(lái)網(wǎng)頁(yè)的變化。寫(xiě)一段偽代碼:
import reurl = 'http://xxxx.com/sdffs'html = download(url)re.findall('正則表達(dá)式', html)這是一個(gè)非常流行的python模塊。安裝命令如下:
pip install beautifulsoup4使用此模塊的第一步是將已下載的html內(nèi)容解析為soup文檔。因許多html網(wǎng)頁(yè)格式不規(guī)范,Beautiful Soup可對(duì)其進(jìn)行確定,將其調(diào)整為規(guī)范的html文件。 
Lxml是基于libxml2這一XML解析庫(kù)的python封裝。該模塊使用c語(yǔ)言編寫(xiě),解析速度比Beautiful Soup更快。 安裝命令如下:
pip install lxmlpip install CSSselect如下代碼,從html中獲取class=country的ul標(biāo)簽下,li標(biāo)簽id=a的文本,獲取li標(biāo)簽class=b的文本 
| 抓取方法 | 性能 | 使用難度 | 安裝難度 | 
|---|---|---|---|
| 正則表達(dá)式 | 快 | 困難 | 簡(jiǎn)單(內(nèi)置模塊) | 
| Beautiful Soup | 慢 | 簡(jiǎn)單 | 簡(jiǎn)單(純python) | 
| Lxml | 快 | 簡(jiǎn)單 | 相對(duì)困難 | 
通常,lxml是抓取數(shù)據(jù)最好的選擇,因?yàn)樵摲椒瓤焖儆纸?,而正則和Beautiful Soup只在某些特定場(chǎng)景下用。
| 
 
 | 
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注