精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

開(kāi)發(fā) 后端
用Python寫爬蟲(chóng)工具在現(xiàn)在是一種司空見(jiàn)慣的事情,每個(gè)人都希望能夠?qū)懸欢纬绦蛉セヂ?lián)網(wǎng)上扒一點(diǎn)資料下來(lái),用于數(shù)據(jù)分析或者干點(diǎn)別的事情。

 用Python寫爬蟲(chóng)工具在現(xiàn)在是一種司空見(jiàn)慣的事情,每個(gè)人都希望能夠?qū)懸欢纬绦蛉セヂ?lián)網(wǎng)上扒一點(diǎn)資料下來(lái),用于數(shù)據(jù)分析或者干點(diǎn)別的事情。

[[287132]]

我們知道,爬蟲(chóng)的原理無(wú)非是把目標(biāo)網(wǎng)址的內(nèi)容下載下來(lái)存儲(chǔ)到內(nèi)存中,這個(gè)時(shí)候它的內(nèi)容其實(shí)是一堆HTML,然后再對(duì)這些HTML內(nèi)容進(jìn)行解析,按照自己的想法提取出想要的數(shù)據(jù),所以今天我們主要來(lái)講四種在Python中解析網(wǎng)頁(yè)HTML內(nèi)容的方法,各有千秋,適合在不同的場(chǎng)合下使用。

首先我們隨意找到一個(gè)網(wǎng)址,這時(shí)我腦子里閃過(guò)了豆瓣這個(gè)網(wǎng)站。嗯,畢竟是用Python構(gòu)建的網(wǎng)站,那就拿它來(lái)做示范吧。

我們找到了豆瓣的Python爬蟲(chóng)小組主頁(yè),看起來(lái)長(zhǎng)成下面這樣。 

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

讓我們用瀏覽器開(kāi)發(fā)者工具看看HTML代碼,定位到想要的內(nèi)容上,我們想要把討論組里的帖子標(biāo)題和鏈接都給扒出來(lái)。 

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

通過(guò)分析,我們發(fā)現(xiàn)實(shí)際上我們想要的內(nèi)容在整個(gè)HTML代碼的 這個(gè)區(qū)域里,那我們只需要想辦法把這個(gè)區(qū)域內(nèi)的內(nèi)容拿出來(lái)就差不多了。

現(xiàn)在開(kāi)始寫代碼。

1: 正則表達(dá)式大法

正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式的文本,所以我們可以利用這個(gè)原理來(lái)提取我們想要的信息。

參考以下代碼。 

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

在代碼第6行和第7行,需要手動(dòng)指定一下header的內(nèi)容,裝作自己這個(gè)請(qǐng)求是瀏覽器請(qǐng)求,否則豆瓣會(huì)視為我們不是正常請(qǐng)求會(huì)返回HTTP 418錯(cuò)誤。

在第7行我們直接用requests這個(gè)庫(kù)的get方法進(jìn)行請(qǐng)求,獲取到內(nèi)容后需要進(jìn)行一下編碼格式轉(zhuǎn)換,同樣是因?yàn)槎拱甑捻?yè)面渲染機(jī)制的問(wèn)題,正常情況下,直接獲取requests content的內(nèi)容即可。

Python模擬瀏覽器發(fā)起請(qǐng)求并解析內(nèi)容代碼: 

  1. url = 'https://www.douban.com/group/491607/'headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:71.0) Gecko/20100101 Firefox/71.0"}response = requests.get(url=url,headers=headers).content.decode('utf-8'

正則的好處是編寫麻煩,理解不容易,但是匹配效率很高,不過(guò)時(shí)至今日有太多現(xiàn)成的HTMl內(nèi)容解析庫(kù)之后,我個(gè)人不太建議再手動(dòng)用正則來(lái)對(duì)內(nèi)容進(jìn)行匹配了,費(fèi)時(shí)費(fèi)力。

主要解析代碼: 

  1. re_div = r'<table\s+class=\"olt\">[\W|\w]+</table>'pattern = re.compile(re_div)content = re.findall(pattern, str(response))re_link = r'<a .*?>(.*?)</a>'mm = re.findall(re_link, str(content), re.S|re.M)urls=re.findall(r"<a.*?href=.*?<\/a>",  str(content), re.I|re.S|re.M) 

2: requests-html

這個(gè)庫(kù)其實(shí)是我個(gè)人最喜歡的庫(kù),作則是編寫requests庫(kù)的網(wǎng)紅程序員 Kenneth Reitz,他在requests的基礎(chǔ)上加上了對(duì)html內(nèi)容的解析,就變成了requests-html這個(gè)庫(kù)了。

下面我們來(lái)看看范例: 

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

我喜歡用requests-html來(lái)解析內(nèi)容的原因是因?yàn)樽髡咭罁?jù)幫我高度封裝過(guò)了,連請(qǐng)求返回內(nèi)容的編碼格式轉(zhuǎn)換也自動(dòng)做了,完全可以讓我的代碼邏輯簡(jiǎn)單直接,更專注于解析工作本身。

主要解析代碼: 

  1. links = response.html.find('table.olt'first=True).find('a'

安裝途徑: pip install requests-html

3: BeautifulSoup

大名鼎鼎的 BeautifulSoup庫(kù),出來(lái)有些年頭了,在Pyhton的HTML解析庫(kù)里屬于重量級(jí)的庫(kù),其實(shí)我評(píng)價(jià)它的重量是指比較臃腫,大而全。

還是來(lái)先看看代碼。 

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

 

  1. soup = BeautifulSoup(response, 'html.parser')links = soup.findAll("table", {"class""olt"})[0].findAll('a'

BeautifulSoup解析內(nèi)容同樣需要將請(qǐng)求和解析分開(kāi),從代碼清晰程度來(lái)講還將就,不過(guò)在做復(fù)雜的解析時(shí)代碼略顯繁瑣,總體來(lái)講可以用,看個(gè)人喜好吧。

安裝途徑: pip install beautifulsoup4

4: lxml的XPath

lxml這個(gè)庫(kù)同時(shí) 支持HTML和XML的解析,支持XPath解析方式,解析效率挺高,不過(guò)我們需要熟悉它的一些規(guī)則語(yǔ)法才能使用,例如下圖這些規(guī)則。 

Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏

來(lái)看看如何用XPath解析內(nèi)容。

主要解析代碼: 

  1. content = doc.xpath("//table[@class='olt']/tr/td/a"

 Python爬蟲(chóng)解析網(wǎng)頁(yè)的4種方式 值得收藏  

如上圖,XPath的解析語(yǔ)法稍顯復(fù)雜,不過(guò)熟悉了語(yǔ)法的話也不失為一種優(yōu)秀的解析手段,因?yàn)椤?/p>

安裝途徑: pip install lxml

四種方式總結(jié)

正則表達(dá)式匹配不推薦,因?yàn)橐呀?jīng)有很多現(xiàn)成的庫(kù)可以直接用,不需要我們?nèi)ゴ罅慷x正則表達(dá)式,還沒(méi)法復(fù)用,在此僅作參考了解。

BeautifulSoup是基于DOM的方式,簡(jiǎn)單的說(shuō)就是會(huì)在解析時(shí)把整個(gè)網(wǎng)頁(yè)內(nèi)容加載到DOM樹(shù)里,內(nèi)存開(kāi)銷和耗時(shí)都比較高,處理海量?jī)?nèi)容時(shí)不建議使用。不過(guò)BeautifulSoup不需要結(jié)構(gòu)清晰的網(wǎng)頁(yè)內(nèi)容,因?yàn)樗梢灾苯觙ind到我們想要的標(biāo)簽,如果對(duì)于一些HTML結(jié)構(gòu)不清晰的網(wǎng)頁(yè),它比較適合。

XPath是基于SAX的機(jī)制來(lái)解析,不會(huì)像BeautifulSoup去加載整個(gè)內(nèi)容到DOM里,而是基于事件驅(qū)動(dòng)的方式來(lái)解析內(nèi)容,更加輕巧。不過(guò)XPath要求網(wǎng)頁(yè)結(jié)構(gòu)需要清晰,而且開(kāi)發(fā)難度比DOM解析的方式高一點(diǎn),推薦在需要解析效率時(shí)使用。

requests-html 是比較新的一個(gè)庫(kù),高度封裝且源碼清晰,它直接整合了大量解析時(shí)繁瑣復(fù)雜的操作,同時(shí)支持DOM解析和XPath解析兩種方式,靈活方便,這是我目前用得較多的一個(gè)庫(kù)。

除了以上介紹到幾種網(wǎng)頁(yè)內(nèi)容解析方式之外還有很多解析手段,在此不一一進(jìn)行介紹了。

寫一個(gè)爬蟲(chóng),最重要的兩點(diǎn)就是如何抓取數(shù)據(jù),如何解析數(shù)據(jù),我們要活學(xué)活用,在不同的時(shí)候利用最有效的工具去完成我們的目的。

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2019-08-14 10:00:08

vue組件通信前端

2014-12-31 14:09:23

xml解析

2022-03-25 11:44:14

Scrapy爬蟲(chóng)命令

2017-08-09 15:27:33

python爬蟲(chóng)開(kāi)發(fā)工具

2021-03-18 14:35:36

爬蟲(chóng)技術(shù)開(kāi)發(fā)

2019-10-12 00:03:07

MyCat數(shù)據(jù)庫(kù)分庫(kù)分表

2018-08-10 11:20:35

編程語(yǔ)言Python網(wǎng)絡(luò)爬蟲(chóng)

2010-08-16 14:02:22

CSS

2025-07-02 08:05:00

網(wǎng)頁(yè)端收消息架構(gòu)輪詢

2018-08-03 16:40:06

前端前端框架微服務(wù)

2020-02-06 10:10:24

python程序代碼

2023-11-28 08:34:39

Python工具

2018-04-28 15:51:33

Mybatis方式傳遞

2022-07-22 09:55:02

Python練手題

2017-01-03 17:51:21

AndroidViewHolder工具類

2013-07-22 10:01:03

JavascriptWeb

2024-07-31 08:33:17

2019-04-22 15:00:05

CSS前端開(kāi)發(fā)

2017-10-27 11:47:05

SQL數(shù)據(jù)庫(kù)優(yōu)化

2021-03-10 10:13:39

爬蟲(chóng)Python代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

高清不卡一区二区在线| 国产中文字幕视频| 国产精品二区三区| 国产在视频线精品视频| 国产精品麻豆| 亚洲精品免费播放| 久热国产精品视频一区二区三区| 亚洲高清在线看| 欧美亚洲高清| 欧美专区日韩专区| 一区二区免费在线观看| 97超视频在线观看| 在线观看一区| 亚洲日本成人女熟在线观看 | 你懂的视频欧美| 欧美在线观看一区| 国产卡一卡二在线| 手机看片1024日韩| 免费视频一区二区| 久久视频精品在线| 99久久久久久久久久| 国产香蕉久久| 亚洲在线视频网站| 欧洲亚洲一区二区| www.久久精品.com| 另类天堂av| 久久亚洲精品国产亚洲老地址| www.555国产精品免费| 日本午夜大片a在线观看| 国产欧美va欧美不卡在线| 91系列在线观看| 国产奶水涨喷在线播放| 日韩一区三区| 日韩av在线一区| 亚洲色图欧美自拍| av中文资源在线资源免费观看| 91麻豆6部合集magnet| 成人动漫网站在线观看| 久久精品国产亚洲av无码娇色| 少妇一区二区视频| 欧美一级二级在线观看| 黄在线观看网站| hd国产人妖ts另类视频| 91伊人久久大香线蕉| 国产精品美女呻吟| 国产污污视频在线观看| 欧美精品一区二区三区久久久竹菊| 精品视频在线播放免| 国产主播中文字幕| 九色porny丨首页入口在线| 亚洲女厕所小便bbb| 99re在线播放| 国产精品久久久久久69| 日本中文在线一区| 2019中文字幕在线观看| 精品自拍偷拍视频| 91欧美在线| 在线中文字幕日韩| 自拍偷拍视频亚洲| 亚洲影院天堂中文av色| 亚洲国产又黄又爽女人高潮的| 视频二区在线播放| 自拍一区在线观看| 精品久久久久国产| 99久久国产综合精品五月天喷水| 国产激情视频在线| 国产精品二三区| 亚洲人成77777| 91视频在线观看| 中文字幕av一区二区三区| 欧美国产视频在线观看| 你懂的视频在线| 成人午夜在线免费| 国产一区二区高清不卡| 三级小视频在线观看| 成人激情视频网站| 国产精品一区二区免费看| 亚洲精品视频网| 成人免费毛片嘿嘿连载视频| av蓝导航精品导航| 国产原创中文av| 国产一区不卡视频| 成人免费视频观看视频| 国 产 黄 色 大 片| 国产一区二区三区免费看| 国产精品羞羞答答| 中文字幕视频二区| 国产一区二区在线免费观看| 91色中文字幕| 丰满大乳国产精品| av一二三不卡影片| 青青草成人网| 97视频精彩视频在线观看| 99视频精品在线| 欧美一区二区三区在线播放| 九色视频成人自拍| 国产精品美女www爽爽爽| 视频在线精品一区| av免费网站在线| 性久久久久久久久| 国产精品第12页| 成人在线高清| 欧美videos大乳护士334| 国产精品无码专区| 成人一二三区| 欧美激情在线观看| 日本一二三区视频| 美女在线观看视频一区二区| 国产精品久久久久久超碰| 国产xxxx孕妇| 26uuu色噜噜精品一区二区| 西游记1978| heyzo高清在线| 欧美精品久久99久久在免费线| 日本高清免费观看| 免费看成人哺乳视频网站| 精品欧美一区二区三区精品久久| 在线国产视频一区| 激情一区二区| 国产一区欧美二区三区| 国产精品毛片一区二区在线看舒淇| 国产.欧美.日韩| 久久久久综合一区二区三区| 在线观看美女网站大全免费| 亚洲国产wwwccc36天堂| caopor在线视频| 国产精品网址| 欧美老肥婆性猛交视频| 久久久.www| 国产精品人人爽人人做我的可爱| 国产成人中文字幕| www.麻豆av| 国产精品国产三级国产| xxxx18hd亚洲hd捆绑| 亚洲青青一区| 伊人男人综合视频网| 久久丫精品久久丫| 久草在线在线精品观看| 欧美久久久久久| 国产不卡人人| 精品国产区一区| 国产女人18水真多毛片18精品| 日韩国产精品久久久| 风间由美久久久| 日本a级在线| 欧美视频一区在线观看| 91久久免费视频| 欧美va天堂| 成人精品福利视频| 91激情在线| 在线亚洲高清视频| 2018国产精品| 中文字幕亚洲精品乱码| 国产成人亚洲综合青青| 天堂av网在线| 亚洲制服欧美中文字幕中文字幕| 欧美视频亚洲图片| 欧美大人香蕉在线| 成人国产精品一区| 日本精品一区二区三区在线播放| 日韩欧美在线免费| 日本黄色网址大全| aa国产精品| 成人免费视频网站入口| 国内激情视频在线观看| 亚洲精品www久久久久久广东| 国产精品九九九九九九| 国产精品1区2区| 国产精品99久久久久久大便| 色婷婷成人网| 欧美成人一区二区三区电影| a级片免费观看| 亚洲精品一二三区| 日韩av片专区| 欧美国产日本| 国产福利久久精品| 国模精品视频| 亚洲一区二区久久久| 波多野结衣日韩| 中文字幕欧美日韩一区| 污污网站在线观看视频| 亚洲影视一区| 国精产品一区二区| 国产夫妻在线| 伊人久久久久久久久久久久久| 一级片免费观看视频| 亚洲精品日韩专区silk| 美女伦理水蜜桃4| 亚洲综合三区| 亚洲在线欧美| 亚洲人成777| 免费91麻豆精品国产自产在线观看| 羞羞色院91蜜桃| 亚洲女性喷水在线观看一区| 星空大象在线观看免费播放| 久久av一区| 亚洲图色在线| 91午夜精品| 欧美亚洲另类制服自拍| av在线第一页| 精品国产一区二区国模嫣然| 东京热一区二区三区四区| 亚洲国产高清在线| 亚洲熟妇一区二区| 久久精品亚洲| 日本一本草久p| 好吊妞视频这里有精品| 91精品国产一区| 番号集在线观看| 精品国产乱子伦一区| chinese国产精品| 亚洲国产精品99久久久久久久久 | 岛国精品视频在线播放| 一级特黄曰皮片视频| 国产精品99久| 超碰在线97免费| 亚洲精选在线| 视频一区二区综合| 成人在线tv视频| 国产日韩在线看片| 51精品在线| 亚洲欧美另类人妖| 国产美女主播在线观看| 一本久久综合亚洲鲁鲁五月天 | 日韩av综合在线| 中文字幕中文字幕在线一区| 国产老熟女伦老熟妇露脸| 国产一区二区三区四| 日韩在线第三页| 国产精品美女| av在线播放亚洲| 久久久久久久久丰满| 日本精品一区二区三区高清 久久| 亚洲成人黄色| 国产一区深夜福利| 日韩成人亚洲| 清纯唯美日韩制服另类| 538视频在线| 日韩中文字幕精品| 毛片在线播放网站| 亚洲精品理论电影| 国产裸体永久免费无遮挡| 欧美午夜精品理论片a级按摩| 少妇一级淫片免费放中国 | 日韩精品久久久| 中文成人在线| 国产一区红桃视频| 欧美成人福利| 国产精品久久婷婷六月丁香| 亚洲www.| 日本精品免费观看| 亚洲天堂av影院| 91精品国产色综合| 男人av在线播放| 97在线视频免费| 久久av色综合| 久久久久国产视频| 国产精品ⅴa有声小说| 亚洲美女动态图120秒| 俄罗斯嫩小性bbwbbw| 精品福利一区二区三区免费视频| 中文字幕精品无| 欧美亚州韩日在线看免费版国语版| 一级黄色免费网站| 欧美视频在线观看 亚洲欧| 99免费在线观看| 亚洲成va人在线观看| www.天天色| 色一情一乱一乱一91av| 国产超碰人人爽人人做人人爱| 色香色香欲天天天影视综合网| 久久久国产免费| 欧美色图免费看| 亚洲午夜激情视频| 91精品国产色综合久久不卡蜜臀| 国产精品久久久国产盗摄| 欧美精品成人一区二区三区四区| 国产精品嫩草影院精东| 欧美一区二区三区公司| 亚洲天堂自拍偷拍| 日韩一区二区三区四区五区六区| av网站在线免费看| 亚洲精品wwww| 国产一级网站视频在线| 亚洲性视频网址| 麻豆网站在线观看| 欧美国产亚洲精品久久久8v| 国产美女一区视频| 欧美性资源免费| 在线观看网站免费入口在线观看国内| 国产999在线观看| 久久夜夜操妹子| 91亚洲永久免费精品| 欧美在线在线| 国产一区二区三区黄| 欧美电影在线观看免费| 四虎永久在线精品免费一区二区| 日本在线电影一区二区三区| 亚洲va久久久噜噜噜久久狠狠| 久久精品影视| 男人插女人视频在线观看| 99国产精品久久久久久久| 分分操这里只有精品| 免费人成在线不卡| 精品1卡二卡三卡四卡老狼| 久久精品视频一区二区| 国产激情无码一区二区三区| 亚洲国产一区二区三区| 日韩人妻无码一区二区三区99| 欧美亚洲综合久久| 亚洲精品中文字幕成人片| 亚洲最新视频在线| 暖暖日本在线观看| 久久婷婷国产麻豆91天堂| 日本高清在线观看| 国产精品成人v| www欧美在线观看| 欧美日韩成人一区二区三区| 欧美a级在线| 熟女人妇 成熟妇女系列视频| 国产一区二区三区精品视频| 免费不卡的av| 亚洲精品亚洲人成人网在线播放| 97人妻一区二区精品视频| 精品国产91九色蝌蚪| 国产一二区在线观看| 国产福利精品av综合导导航| 成人影院中文字幕| 二级片在线观看| 日本成人在线一区| 国产精品一级黄片| 亚洲手机成人高清视频| 国产无遮挡又黄又爽又色| 欧美日韩一级黄| 少妇一区二区三区四区| 欧美国产中文字幕| 亚洲成人毛片| 日韩不卡av| 毛片一区二区| 国产精品久久AV无码| 亚洲丝袜美腿综合| 天天射天天干天天| 精品中文视频在线| 97蜜桃久久| 国产精品久久国产三级国电话系列| 97精品国产福利一区二区三区| 男人亚洲天堂网| 91捆绑美女网站| 青娱乐国产在线视频| 欧美高清精品3d| 免费高清在线观看| 国产精品自拍视频| 大胆日韩av| 精品国产av无码一区二区三区| 老司机免费视频一区二区| 日本精品在线观看视频| 色综合欧美在线| 久久久久久久久亚洲精品| 国产91av在线| 精品精品国产三级a∨在线| 肉大捧一出免费观看网站在线播放 | 在线能看的av网站| 中文字幕欧美激情一区| 精品国产www| 欧美日韩你懂得| 日本中文字幕在线播放| 国产精品国内视频| 成人羞羞视频播放网站| 免费一级特黄录像| 国产亚洲一区二区三区| 无码人妻av一区二区三区波多野| 亚洲视频一区二区三区| 亚洲第一影院| 在线观看日韩片| 国产精品资源在线看| 久久久久久久久久久网| 精品国产一区二区三区久久久蜜月 | 欧美日韩在线观看不卡| 国产精品视频你懂的| 亚洲系列第一页| 中文字幕亚洲一区二区三区五十路| 亚洲成人a级片| 一级特黄录像免费播放全99| 国产精品综合二区| 一级二级黄色片| 欧美一区二区三区四区在线观看| 人妖欧美1区| 国产精品久久久久久久久久久久午夜片| 中文字幕免费精品| 成人在线电影网站| 欧美在线免费播放| 成黄免费在线| 97在线中文字幕| 午夜宅男久久久| 99热6这里只有精品| 在线成人免费视频| xxx性欧美| 欧美日韩综合精品| 日韩电影免费在线观看网站| 国产一级淫片久久久片a级|