在Python中使用HTMLParser解析HTML的教程
如果我們要編寫一個搜索引擎,第一步是用爬蟲把目標網(wǎng)站的頁面抓下來,第二步就是解析該HTML頁面,看看里面的內容到底是新聞、圖片還是視頻。
假設第一步已經(jīng)完成了,第二步應該如何解析HTML呢?
HTML本質上是XML的子集,但是HTML的語法沒有XML那么嚴格,所以不能用標準的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()方法可以多次調用,也就是不一定一次把整個HTML字符串都塞進去,可以一部分一部分塞進去。
特殊字符有兩種,一種是英文表示的 ,一種是數(shù)字表示的Ӓ,這兩種字符都可以通過Parser解析出來。
小結
找一個網(wǎng)頁,例如https://www.python.org/events/python-events/,用瀏覽器查看源碼并復制,然后嘗試解析一下HTML,輸出Python官網(wǎng)發(fā)布的會議時間、名稱和地點。
- Python中使用HTMLParser解析html實例
- python網(wǎng)絡編程學習筆記(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
- Python HTMLParser模塊解析html獲取url實例
- Python 爬蟲的工具列表大全
- Python爬蟲實現(xiàn)爬取百度百科詞條功能實例
- python爬蟲簡單的添加代理進行訪問的實現(xiàn)代碼
- Python爬蟲框架Scrapy安裝使用步驟
- 使用Python編寫簡單網(wǎng)絡爬蟲抓取視頻下載資源
- 零基礎寫python爬蟲之使用Scrapy框架編寫爬蟲
- Python HTML解析模塊HTMLParser用法分析【爬蟲工具】
相關文章
python中plot實現(xiàn)即時數(shù)據(jù)動態(tài)顯示方法
這篇文章主要為大家詳細介紹了python中plot實現(xiàn)即時數(shù)據(jù)動態(tài)顯示方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Matplotlib使用Cursor實現(xiàn)UI定位的示例代碼
這篇文章主要介紹了Matplotlib使用Cursor實現(xiàn)UI定位的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
基于matplotlib+tkinter實現(xiàn)簡單的繪圖系統(tǒng)
在理解matplotlib嵌入到tkinter中的原理之后,就已經(jīng)具備了打造繪圖系統(tǒng)的技術基礎,所以本文來實現(xiàn)一個簡單的繪圖系統(tǒng),感興趣的小伙伴小伙伴可以了解一下2023-08-08
python?實現(xiàn)dcmtk關聯(lián)pacs功能推送下拉影像(推薦)
這篇文章主要介紹了python?實現(xiàn)dcmtk關聯(lián)pacs功能?推送下拉影像,包含dcmtk關聯(lián)pacs技術筆記等相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10
Python使用sort和class實現(xiàn)的多級排序功能示例
這篇文章主要介紹了Python使用sort和class實現(xiàn)的多級排序功能,涉及Python基于面向對象的元素遍歷、列表排序、添加等相關操作技巧,需要的朋友可以參考下2018-08-08
基于python的selenium兩種文件上傳操作實現(xiàn)詳解
這篇文章主要介紹了基于python的selenium兩種文件上傳操作實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09
pip matplotlib報錯equired packages can not be built解決
這篇文章主要介紹了pip matplotlib報錯equired packages can not be built解決,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
python中*args與**kwarsg及閉包和裝飾器的用法
這篇文章主要介紹了python中*args與**kwarsg及閉包和裝飾器的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

