精品欧美一区二区三区在线观看 _久久久久国色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)

亚洲午夜在线观看| 欧美一级片久久久久久久| 国产精品嫩草影院8vv8| 污的网站在线观看| 26uuu精品一区二区| 国产精品久久久久久久久久| 99久久99久久精品国产| 美女视频亚洲色图| 欧美日本在线观看| 男女视频网站在线观看| av在线女优影院| 成人一区二区三区视频在线观看| 国产91色在线|| 免费麻豆国产一区二区三区四区| 五月激激激综合网色播| 欧美一区二区三区的| 久久综合久久色| 在线看福利影| 国产精品天干天干在线综合| 国产精品久久亚洲| 一级淫片免费看| 国产欧美亚洲一区| 九九久久精品一区| 亚洲色图日韩精品| 小嫩嫩12欧美| 精品裸体舞一区二区三区| 国产又黄又猛又粗又爽的视频| 大香伊人中文字幕精品| 中文字幕一区二区三区乱码在线| 精品欧美日韩在线| 高潮一区二区三区乱码| 国内精品写真在线观看| 国产成人jvid在线播放| 日韩女同强女同hd| 欧美精品播放| 久久久黄色av| 中文字幕精品亚洲| 精品国产一区二区三区| 日韩精品中文在线观看| 中国免费黄色片| 国产精区一区二区| 欧美精品日韩综合在线| 一区二区三区入口| 午夜激情成人网| 色综合久久久久久久久久久| 91视频 -- 69xx| av手机免费在线观看| 亚洲一区在线视频| 毛片在线视频观看| 91三级在线| 伊人一区二区三区| 欧美乱做爰xxxⅹ久久久| 91高清在线观看视频| 亚洲国产精品99久久久久久久久 | 精品久久国产一区| 欧美精品日韩一本| 日韩成人av免费| 99精品美女视频在线观看热舞| 欧美日韩久久不卡| 天堂一区在线观看| 91精品视频一区二区| 91精品国产综合久久久蜜臀图片| 8x8x成人免费视频| 国产电影一区二区| 欧美大片一区二区| 好男人香蕉影院| 亚洲精品动态| 在线成人激情黄色| 二区三区四区视频| 欧美在线亚洲| 91精品国产99久久久久久| 亚洲第一在线播放| 美国毛片一区二区三区| 亚洲综合精品伊人久久| 理论片中文字幕| 久久综合一区二区| 亚洲日本精品一区| 中文字幕在线三区| 精品日韩中文字幕| 爱情岛论坛成人| 国产美女亚洲精品7777| 亚洲成人xxx| 日本少妇高潮喷水xxxxxxx| 成人羞羞网站入口免费| 欧美xxxx14xxxxx性爽| 国产午夜小视频| 久久一区精品| 亚洲a成v人在线观看| 手机在线不卡av| 国产欧美一区二区精品忘忧草| 在线看无码的免费网站| 24小时免费看片在线观看| 色综合久久久久综合体| 99精品999| 小说区图片区色综合区| 久久精品国产欧美亚洲人人爽| 久久影院一区二区| 日韩福利电影在线观看| av资源一区二区| 国产小视频在线播放| 一区二区三区四区在线播放| 免费观看精品视频| 美国十次综合久久| 国产亚洲精品一区二555| www.av视频| 日韩精品欧美精品| 国产精品青青草| 日本中文在线| 日韩欧美第一页| 日本wwww色| 日本一区二区高清不卡| 97热在线精品视频在线观看| 国产精品国产一区二区三区四区| 久久综合五月天婷婷伊人| 久久国产精品免费观看| 天然素人一区二区视频| 亚洲精品suv精品一区二区| 来吧亚洲综合网| 日精品一区二区三区| 成人免费在线一区二区三区| 尤物网在线观看| 色综合久久88色综合天天| 亚洲麻豆一区二区三区| 中文无码久久精品| 国产精品久久久久久av福利软件| 日韩在线视频观看免费| 伊人一区二区三区| 手机av在线网| 三级电影一区| 国产精品伦子伦免费视频| 亚洲av片在线观看| 亚洲成人免费视频| 成人在线电影网站| 欧美私人啪啪vps| 亚洲一区二区三区视频| 午夜激情在线观看| 欧美三级视频在线| 永久免费看mv网站入口78| 国产精品红桃| 成人片在线免费看| 黑人玩欧美人三根一起进| 日韩精品中文字幕一区| 欧美成人片在线观看| 国模娜娜一区二区三区| 91制片厂免费观看| 亚洲资源在线| 久久国产精品影视| 国产黄色片网站| 一区二区三区久久| 亚洲成人精品在线播放| 最新国产精品久久久| 91黄在线观看| 久久一卡二卡| 日韩高清不卡av| 日韩综合在线观看| 日本一区二区三区在线观看| 美女网站色免费| 色88久久久久高潮综合影院| 91视频88av| 潘金莲一级淫片aaaaa| 国产熟女精品视频| 国产精品久久久久国产精品日日| 91女神在线观看| **女人18毛片一区二区| 91久久精品国产91久久性色tv| av网站大全在线| 精品国产区一区| 久久国产黄色片| 国产视频在线观看一区二区三区| 五月婷婷激情久久| 欧美国产91| 欧美13一14另类| 国产精品99久久久久久董美香 | 欧美日韩电影在线播放| 神马午夜精品91| 成人国产精品视频| 成人在线看视频| 99久久九九| 国产日韩欧美综合精品| 亚洲www免费| 色婷婷久久av| 少妇人妻一区二区| 欧美亚日韩国产aⅴ精品中极品| 日韩av手机在线免费观看| 豆国产96在线|亚洲| 国产精品69页| 在线成人直播| 日本一区二区三不卡| 国产一区二区三区免费在线| 91精品国产乱码久久久久久蜜臀| 黄色小视频在线观看| 91精品国产综合久久香蕉麻豆| 日本黄色片视频| 国产精品天美传媒沈樵| 尤物网站在线观看| 捆绑调教一区二区三区| 少妇高潮毛片色欲ava片| 三上亚洲一区二区| 久久精品国产理论片免费| 久久亚洲资源中文字| 97精品伊人久久久大香线蕉 | 老司机久久精品| 性欧美videos另类喷潮| 樱空桃在线播放| 九九热精品视频在线观看| 99视频日韩| 麻豆久久久久| 日韩暖暖在线视频| 国产ktv在线视频| 欧美精品做受xxx性少妇| 春暖花开成人亚洲区| 亚洲国产精品国自产拍av秋霞| 在线观看中文字幕码| 欧美日韩精品在线播放| 国产精品久久久精品四季影院| 久久一日本道色综合| 国产情侣久久久久aⅴ免费| 国内精品视频一区二区三区八戒| 日韩毛片在线免费看| 在线欧美日韩| 国产亚洲精品久久久久久久| 欧美aaaa视频| 亚洲精品乱码视频| 你懂的一区二区三区| 黑人中文字幕一区二区三区| 精品视频在线观看免费观看 | 色悠悠久久综合网| 一区二区91| 久久久久久久9| 亚洲综合色站| 三年中国中文在线观看免费播放| 国产欧美日韩免费观看| 欧美福利精品| 要久久爱电视剧全集完整观看 | 午夜视频一区二区| 国产黄色片视频| 亚洲福利一区二区| 国产午夜精品无码一区二区| 有码一区二区三区| 免费三片在线播放| 亚洲综合另类小说| 久久久精品一区二区涩爱| 亚洲精品久久久蜜桃| 国内偷拍精品视频| 亚洲综合免费观看高清完整版 | 51妺嘿嘿午夜福利| 国产午夜精品一区二区三区视频| av在线网站观看| 国产欧美综合在线| 人妻熟人中文字幕一区二区| 国产清纯在线一区二区www| 国产又黄又粗视频| 国产精品人妖ts系列视频| 99成人在线观看| 亚洲精品久久7777| 国产精品99精品| 欧美日韩在线视频观看| 黄色一级视频免费看| 欧洲国内综合视频| 国产又粗又黄视频| 日韩欧美二区三区| 日本高清视频免费看| 亚洲欧美中文日韩在线| 成人精品福利| 欧美成人小视频| 182在线播放| 国产成人自拍视频在线观看| 日韩一区二区三区四区五区| 3d动漫啪啪精品一区二区免费| 福利在线一区| 欧美日韩精品免费观看| 欧美第一精品| www.av91| 日韩精品亚洲专区| 少妇性l交大片7724com| 99久久婷婷国产综合精品| 国产色视频一区二区三区qq号| 中文无字幕一区二区三区| 深夜福利影院在线观看| 欧美日韩国产限制| 一本到在线视频| 精品国产第一区二区三区观看体验| 亚洲人成色777777精品音频| 中文欧美日本在线资源| 日韩电影免费观看| 国产精国产精品| 亚洲天堂av资源在线观看| 欧美二级三级| 欧美久久九九| 黄色av免费在线播放| 国产高清亚洲一区| 国产传媒国产传媒| 亚洲一区二区三区免费视频| 久久国产香蕉视频| 精品对白一区国产伦| 福利在线观看| 高清欧美性猛交| 亚洲男男av| 欧美日韩在线观看一区| 欧美在线二区| 岛国毛片在线播放| 99re这里只有精品6| 日本高清一二三区| 日韩欧美在线视频免费观看| 国产日韩免费视频| 中文字幕国内精品| 色在线免费观看| 97久久天天综合色天天综合色hd| 你微笑时很美电视剧整集高清不卡 | 国产精品国产三级国产专播精品人| 久久国际精品| 亚洲黄色成人久久久| 亚洲在线观看| 无码成人精品区在线观看| 国产精品久久久久久久久久免费看 | av网在线播放| 午夜影院在线观看欧美| 国产a级免费视频| 色av中文字幕一区| 久久天堂av| 免费日韩电影在线观看| 在线观看一区视频| 年下总裁被打光屁股sp | 91啪亚洲精品| 欧美日韩中文视频| 日韩欧美亚洲另类制服综合在线| 992tv免费直播在线观看| 日本一区二区在线播放| 欧美激情影院| 日本福利视频在线| www.色综合.com| 国产主播在线观看| 精品国产免费久久 | 2019亚洲日韩新视频| 91综合精品国产丝袜长腿久久| 看一级黄色录像| 国产综合色在线| 三级全黄做爰视频| 欧美高清视频www夜色资源网| yjizz视频网站在线播放| 国产福利视频一区| 菠萝蜜一区二区| 在线观看免费成人av| 国产欧美日韩三级| 中文字幕乱码无码人妻系列蜜桃| 一区二区成人精品| 国产成人福利夜色影视| 午夜精品美女久久久久av福利| 日韩专区一卡二卡| 国产亚洲精品精品精品| 欧美在线免费观看视频| 波多野结衣在线影院| 国产日韩亚洲欧美| 中文字幕免费一区二区三区| 精品人妻一区二区三| 亚洲一区二区三区国产| 亚洲精品无amm毛片| 77777亚洲午夜久久多人| 国产精品亚洲片在线播放| 亚洲这里只有精品| 亚洲乱码国产乱码精品精的特点 | 91在线视频免费播放| 亚洲男人天堂网| 福利一区二区| 超碰10000| 99久久久无码国产精品| 狠狠人妻久久久久久综合| 中文字幕av一区二区| 日韩在线成人| a√天堂在线观看| 亚洲国产高清aⅴ视频| av片免费播放| 97**国产露脸精品国产| 欧美限制电影| 免费国偷自产拍精品视频| 欧美日韩国产精品一区二区三区四区| 国产小视频免费在线观看| 91精品综合视频| 国产欧美日韩综合一区在线播放| 丰满的亚洲女人毛茸茸| 日韩欧美中文字幕制服| 国产在线精彩视频| 一区二区高清视频| 不卡一区二区中文字幕| 中文字幕乱码无码人妻系列蜜桃| 欧美夫妻性生活xx| 精品大片一区二区| 能看毛片的网站| 日韩欧中文字幕| 宅男在线观看免费高清网站| 久久久久久高清| 国产风韵犹存在线视精品| 麻豆精品久久久久久久99蜜桃| 久久伊人精品视频| 亚洲日本三级| 无码人妻丰满熟妇区毛片蜜桃精品| 91黄色免费看| 1区2区在线| 艳母动漫在线免费观看| 91视频精品|