在Python中使用HTMLParser解析HTML的教程
如果我們要編寫一個搜索引擎,第一步是用爬蟲把目標(biāo)網(wǎng)站的頁面抓下來,第二步就是解析該HTML頁面,看看里面的內(nèi)容到底是新聞、圖片還是視頻。
假設(shè)第一步已經(jīng)完成了,第二步應(yīng)該如何解析HTML呢?
HTML本質(zhì)上是XML的子集,但是HTML的語法沒有XML那么嚴(yán)格,所以不能用標(biāo)準(zhǔn)的DOM或SAX來解析HTML。
好在Python提供了HTMLParser來非常方便地解析HTML,只需簡單幾行代碼:
from HTMLParser import HTMLParser
from htmlentitydefs import name2codepoint
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print('<%s>' % tag)
def handle_endtag(self, tag):
print('</%s>' % tag)
def handle_startendtag(self, tag, attrs):
print('<%s/>' % tag)
def handle_data(self, data):
print('data')
def handle_comment(self, data):
print('<!-- -->')
def handle_entityref(self, name):
print('&%s;' % name)
def handle_charref(self, name):
print('&#%s;' % name)
parser = MyHTMLParser()
parser.feed('<html><head></head><body><p>Some <a href=\"#\">html</a> tutorial...<br>END</p></body></html>')
feed()方法可以多次調(diào)用,也就是不一定一次把整個HTML字符串都塞進(jìn)去,可以一部分一部分塞進(jìn)去。
特殊字符有兩種,一種是英文表示的 ,一種是數(shù)字表示的Ӓ,這兩種字符都可以通過Parser解析出來。
小結(jié)
找一個網(wǎng)頁,例如https://www.python.org/events/python-events/,用瀏覽器查看源碼并復(fù)制,然后嘗試解析一下HTML,輸出Python官網(wǎng)發(fā)布的會議時間、名稱和地點(diǎn)。
- Python中使用HTMLParser解析html實(shí)例
- python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
- Python HTMLParser模塊解析html獲取url實(shí)例
- Python 爬蟲的工具列表大全
- Python爬蟲實(shí)現(xiàn)爬取百度百科詞條功能實(shí)例
- python爬蟲簡單的添加代理進(jìn)行訪問的實(shí)現(xiàn)代碼
- Python爬蟲框架Scrapy安裝使用步驟
- 使用Python編寫簡單網(wǎng)絡(luò)爬蟲抓取視頻下載資源
- 零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲
- Python HTML解析模塊HTMLParser用法分析【爬蟲工具】
相關(guān)文章
python畫圖時linestyle,color和loc參數(shù)的設(shè)置方式
這篇文章主要介紹了python畫圖時linestyle,color和loc參數(shù)的設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
Python實(shí)現(xiàn)樹莓派攝像頭持續(xù)錄像并傳送到主機(jī)的步驟
這篇文章主要介紹了Python實(shí)現(xiàn)樹莓派攝像頭持續(xù)錄像并傳送到主機(jī)的步驟,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
python對raw格式照片進(jìn)行降噪處理的方法詳解
要對RAW格式的照片進(jìn)行降噪,我們可以使用rawpy庫來讀取RAW圖像,并使用imageio庫將處理后的圖像保存為其他格式,如PNG或JPEG,本文將詳細(xì)給大家介紹python如何對raw格式照片進(jìn)行降噪處理,文中有詳細(xì)的代碼流程,需要的朋友可以參考下2023-05-05
Python實(shí)現(xiàn)字符串反轉(zhuǎn)的常用方法分析【4種方法】
這篇文章主要介紹了Python實(shí)現(xiàn)字符串反轉(zhuǎn)的常用方法,結(jié)合具體實(shí)例形式分析了4種常用的Python字符串反轉(zhuǎn)操作技巧,需要的朋友可以參考下2017-09-09
plt.figure()參數(shù)使用詳解及運(yùn)行演示
這篇文章主要介紹了plt.figure()參數(shù)使用詳解及運(yùn)行演示,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Python Django給admin添加Action的方法實(shí)例詳解
這篇文章主要介紹了Django給admin添加Action的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04
Python詳解文字轉(zhuǎn)語音的實(shí)現(xiàn)
在自然語言處理上,文字、音頻互轉(zhuǎn)是一個很關(guān)鍵的技術(shù)點(diǎn)。對于語音轉(zhuǎn)文字,個人實(shí)現(xiàn)較為困難,我們可以使用語音轉(zhuǎn)文字的軟件或借助各API(如科大訊飛等)進(jìn)行移植開發(fā)。不過文字轉(zhuǎn)語音就相對而言容易實(shí)現(xiàn)很多了2022-02-02

