Python網(wǎng)頁解析器使用實(shí)例詳解
python 網(wǎng)頁解析器
1、常見的python網(wǎng)頁解析工具有:re正則匹配、python自帶的html.parser模塊、第三方庫BeautifulSoup(重點(diǎn)學(xué)習(xí))以及l(fā)xm庫。

2、常見網(wǎng)頁解析器分類
(1)模糊匹配 :re正則表達(dá)式即為字符串式的模糊匹配模式;
(2)結(jié)構(gòu)化解析: BeatufiulSoup、html.parser與lxml,他們都以DOM樹結(jié)構(gòu)為標(biāo)準(zhǔn),進(jìn)行標(biāo)簽結(jié)構(gòu)信息的提取。
3.DOM樹解釋:即文檔對(duì)象模型(Document Object Model),其樹形標(biāo)簽結(jié)構(gòu),請(qǐng)見下圖。
所謂結(jié)構(gòu)化解析,就是網(wǎng)頁解析器它會(huì)將下載的整個(gè)HTML文檔當(dāng)成一個(gè)Doucment對(duì)象,然后在利用其上下結(jié)構(gòu)的標(biāo)簽形式,對(duì)這個(gè)對(duì)象進(jìn)行上下級(jí)的標(biāo)簽進(jìn)行遍歷和信息提取操作。
# 引入相關(guān)的包,urllib與bs4,是獲取和解析網(wǎng)頁最常用的庫from urllib.request import urlopenfrom bs4 import BeautifulSoup# 打開鏈接html=urlopen('https://www.datalearner.com/website_navi')# 通過urlopen獲得網(wǎng)頁對(duì)象,將其放入BeautifulSoup中,bsObj存放的目標(biāo)網(wǎng)頁的html文檔bsObj=BeautifulSoup(html.read())print(bsObj)
# soup = BeautifulSoup(open(url,’r’,encoding = ’utf-8’))
import requestsfrom bs4 import BeautifulSoupheaders={’User-Agent’: ’Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36’,’referer’:'www.mmjpg.com' }all_url = ’http://www.mmjpg.com/’ #’User-Agent’:請(qǐng)求方式 #’referer’:從哪個(gè)鏈接跳轉(zhuǎn)進(jìn)來的start_html = requests.get(all_url, headers=headers) #all_url:起始的地址,也就是訪問的第一個(gè)頁面 #headers:請(qǐng)求頭,告訴服務(wù)器是誰來了。 #requests.get:一個(gè)方法能獲取all_url的頁面內(nèi)容并且返回內(nèi)容。Soup = BeautifulSoup(start_html.text, ’lxml’) #BeautifulSoup:解析頁面 #lxml:解析器 #start_html.text:頁面的內(nèi)容
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. Android如何加載Base64編碼格式圖片3. 解決Android studio xml界面無法預(yù)覽問題4. 圖文詳解vue中proto文件的函數(shù)調(diào)用5. 什么是python的自省6. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)7. Vuex localStorage的具體使用8. php模擬實(shí)現(xiàn)斗地主發(fā)牌9. vue 使用localstorage實(shí)現(xiàn)面包屑的操作10. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備