f = urllib.urlopen(url, proxies=proxies) #需要**
#f = urllib.urlopen(url) #不需要**可以直接這麼寫
data = f.read()
f.close()
parser = htmlparser(formatter.abstractformatter(
formatter.dumbwriter(cstringio.stringio())))
parser.feed(data)
parser.close()
print parser.anchorlist這段**的工作方式中,最重要的是parser 類不進行i/o,它只處理乙個formatter 物件。
python 只有乙個formatter 物件,即formatter.abstractformatter,用來解析資料並使用writer
物件來分配其輸出內容。同樣,python 只有乙個有用的writer 物件,即formatter.dumbwriter。
可以為該物件提供乙個可選的檔案物件,表示將輸出寫入檔案。如果不提供這個檔案物件,
則會寫入標準輸出,但後者一般不是所期望的。為了不讓輸出寫到標準輸出,先例項化乙個
cstringio 物件。stringio 物件會吸收掉這些輸出
beautifulsoup不是標準庫需要單獨安裝
pip 工具安裝:
$pip install beautifulsoup
from
beautifulsoup
import beautifulsoup, soupstrainer
links = beautifulsoup(data, parseonlythese=soupstrainer
('a'))
Python中利用xpath解析HTML
在進行網頁抓取的時候,分析定位html節點是獲取抓取資訊的關鍵,目前我用的是lxml模組 用來分析xml文件結構的,當然也能分析html結構 利用其lxml.html的xpath對html進行分析,獲取抓取資訊。首先,我們需要安裝乙個支援xpath的python庫。目前在libxml2的 上被推薦的...
python中html解析庫使用
python中解析網頁常用的兩個庫 對於新手來說是利器 from bs4 import beautifulsoup from lxml import etreefrom bs4 import beautifulsoup soup beautifulsoup html,lxml kuai sou.se...
python簡單的HTML解析
coding utf 8 引入相關模組 import json import requests from bs4 import beautifulsoup url wbdata requests.get url text 對獲取到的文字進行解析 soup beautifulsoup wbdata,l...