0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

12行簡(jiǎn)單的Python代碼,初窺爬蟲(chóng)的秘境

馬哥Linux運(yùn)維 ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-06-07 09:17 ? 次閱讀

往往不少童鞋寫(xiě)論文苦于數(shù)據(jù)獲取艱難,輾轉(zhuǎn)走上爬蟲(chóng)之路;

許多分析師做輿情監(jiān)控或者競(jìng)品分析的時(shí)候,也常常使用到爬蟲(chóng)。

今天,本文將帶領(lǐng)小伙伴們通過(guò)12行簡(jiǎn)單的Python代碼,初窺爬蟲(chóng)的秘境。

爬蟲(chóng)目標(biāo)

本文采用requests + Xpath,爬取豆瓣電影《黑豹》部分短評(píng)內(nèi)容。

運(yùn)行以上的爬蟲(chóng)腳本,我們得以見(jiàn)證奇跡

爬蟲(chóng)結(jié)果與原網(wǎng)頁(yè)內(nèi)容的對(duì)比,完全一致

通過(guò)tqdm模塊實(shí)現(xiàn)了良好的交互

工具準(zhǔn)備

chrome瀏覽器(分析HTTP請(qǐng)求、抓包)

安裝Python 3及相關(guān)模塊(requests、lxml、pandas、time、random、tqdm)requests:用來(lái)簡(jiǎn)單請(qǐng)求數(shù)據(jù)lxml:比Beautiful Soup更快更強(qiáng)的解析庫(kù)pandas:數(shù)據(jù)處理神器time:設(shè)置爬蟲(chóng)訪問(wèn)間隔防止被抓random:隨機(jī)數(shù)生成工具,配合time使用tqdm:交互好工具,顯示程序運(yùn)行進(jìn)度

基本步驟

網(wǎng)絡(luò)請(qǐng)求分析

網(wǎng)頁(yè)內(nèi)容解析

數(shù)據(jù)讀取存儲(chǔ)

涉及知識(shí)點(diǎn)

爬蟲(chóng)協(xié)議

http請(qǐng)求分析

requests請(qǐng)求

Xpath語(yǔ)法

Python基礎(chǔ)語(yǔ)法

Pandas數(shù)據(jù)處理

爬蟲(chóng)協(xié)議

爬蟲(chóng)協(xié)議即網(wǎng)站根目錄之下的robots.txt文件,用來(lái)告知爬蟲(chóng)者哪些可以拿哪些不能偷,其中Crawl-delay告知了網(wǎng)站期望的被訪問(wèn)的間隔。(為了對(duì)方服務(wù)器端同學(xué)的飯碗,文明拿數(shù)據(jù),本文將爬蟲(chóng)訪問(wèn)間隔設(shè)置為6-9秒的隨機(jī)數(shù))

豆瓣網(wǎng)站的爬蟲(chóng)協(xié)議

HTTP請(qǐng)求分析

使用chrome瀏覽器訪問(wèn)《黑豹》短評(píng)頁(yè)面https://movie.douban.com/subject/6390825/comments?sort=new_score&status=P,按下F12,進(jìn)入network面板進(jìn)行網(wǎng)絡(luò)請(qǐng)求的分析,通過(guò)刷新網(wǎng)頁(yè)重新獲得請(qǐng)求,借助chrome瀏覽器對(duì)請(qǐng)求進(jìn)行篩選、分析,找到那個(gè)Ta

豆瓣短評(píng)頁(yè)面請(qǐng)求分析

通過(guò)請(qǐng)求分析,我們找到了目標(biāo)url為'https://movie.douban.com/subject/6390825/comments?start=0&limit=20&sort=new_score&status=P&percent_type=',并且每次翻頁(yè),參數(shù)start將往上增加20(通過(guò)多次翻頁(yè)嘗試,我們發(fā)現(xiàn)第11頁(yè)以后需要登錄才能查看,且登錄狀態(tài)也僅展示前500條短評(píng)。作為簡(jiǎn)單demo,本文僅對(duì)前11頁(yè)內(nèi)容進(jìn)行爬?。?/p>

requests請(qǐng)求

通過(guò)requests模塊發(fā)送一個(gè)get請(qǐng)求,用content方法獲取byte型數(shù)據(jù),并以u(píng)tf-8重新編碼;然后添加一個(gè)交互,判斷是否成功獲取到資源(狀態(tài)碼為200),輸出獲取狀態(tài)

請(qǐng)求詳情分析

(除了content,還有text方法,其返回unicode字符集,直接使用text方法遇到中文的話容易出現(xiàn)亂碼)

Xpath語(yǔ)法解析

獲取到數(shù)據(jù)之后,需要對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行解析,常用的工具有正則表達(dá)式、Beautiful Soup、Xpath等等;其中Xpath又快又方便。此處我們通過(guò)Xpath解析資源獲取到了前220條短評(píng)的用戶名、短評(píng)分?jǐn)?shù)、短評(píng)內(nèi)容等數(shù)據(jù)。(可借助chrome的強(qiáng)大功能直接復(fù)制Xpath,Xpath語(yǔ)法學(xué)習(xí)http://www.runoob.com/xpath/xpath-tutorial.html)

數(shù)據(jù)處理

獲取到數(shù)據(jù)之后,我們通過(guò)list構(gòu)造dictionary,然后通過(guò)dictionary構(gòu)造dataframe,并通過(guò)pandas模塊將數(shù)據(jù)輸出為csv文件

結(jié)語(yǔ)與彩蛋

本例通過(guò)requests+Xpath的方案,成功爬取了電影《黑豹》的部分豆瓣短評(píng)數(shù)據(jù),為文本分析或其他數(shù)據(jù)挖掘工作打好了數(shù)據(jù)地基。本文作為demo,僅展示了簡(jiǎn)單的爬蟲(chóng)流程,更多彩蛋如請(qǐng)求頭、請(qǐng)求體信息獲取、cookie、模擬登錄、分布式爬蟲(chóng)等請(qǐng)關(guān)注后期文章更新喲。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4823

    瀏覽量

    68953
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    84983
  • 爬蟲(chóng)
    +關(guān)注

    關(guān)注

    0

    文章

    82

    瀏覽量

    6982

原文標(biāo)題:12行Python暴力爬《黑豹》豆瓣短評(píng)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 8人收藏
  • 栗悟饭与龟波功1
  • 幻魔9091
  • 稻草人_1141
  • wang187395556521

評(píng)論

相關(guān)推薦

Python數(shù)據(jù)爬蟲(chóng)學(xué)習(xí)內(nèi)容

,利用爬蟲(chóng),我們可以解決部分?jǐn)?shù)據(jù)問(wèn)題,那么,如何學(xué)習(xí)Python數(shù)據(jù)爬蟲(chóng)能?1.學(xué)習(xí)Python基礎(chǔ)知識(shí)并實(shí)現(xiàn)基本的爬蟲(chóng)過(guò)程一般獲取數(shù)據(jù)的過(guò)
發(fā)表于 05-09 17:25

Python爬蟲(chóng)與Web開(kāi)發(fā)庫(kù)盤(pán)點(diǎn)

Python爬蟲(chóng)和Web開(kāi)發(fā)均是與網(wǎng)頁(yè)相關(guān)的知識(shí)技能,無(wú)論是自己搭建的網(wǎng)站還是爬蟲(chóng)爬去別人的網(wǎng)站,都離不開(kāi)相應(yīng)的Python庫(kù),以下是常用的Pyth
發(fā)表于 05-10 15:21

Python 爬蟲(chóng):8 個(gè)常用的爬蟲(chóng)技巧總結(jié)!

python也差不多一年多了,python應(yīng)用最多的場(chǎng)景還是web快速開(kāi)發(fā)、爬蟲(chóng)自動(dòng)化運(yùn)維:寫(xiě)過(guò)簡(jiǎn)單網(wǎng)站、寫(xiě)過(guò)自動(dòng)發(fā)帖腳本、寫(xiě)過(guò)收發(fā)郵件腳本、寫(xiě)過(guò)
發(fā)表于 01-02 14:37

什么是爬蟲(chóng)

什么是爬蟲(chóng)?爬蟲(chóng)的價(jià)值?最簡(jiǎn)單python爬蟲(chóng)爬蟲(chóng)基本架構(gòu)
發(fā)表于 11-05 06:13

0基礎(chǔ)入門Python爬蟲(chóng)實(shí)戰(zhàn)課

學(xué)習(xí)資料良莠不齊爬蟲(chóng)是一門實(shí)踐性的技能,沒(méi)有實(shí)戰(zhàn)的課程都是騙人的!所以這節(jié)Python爬蟲(chóng)實(shí)戰(zhàn)課,將幫到你!課程從0基礎(chǔ)入門開(kāi)始,受眾人群廣泛:如畢業(yè)大學(xué)生、轉(zhuǎn)行人群、對(duì)Python
發(fā)表于 07-25 09:28

Python爬蟲(chóng)簡(jiǎn)介與軟件配置

Python爬蟲(chóng)練習(xí)一、爬蟲(chóng)簡(jiǎn)介1. 介紹2. 軟件配置二、爬取南陽(yáng)理工OJ題目三、爬取學(xué)校信息通知四、總結(jié)五、參考一、爬蟲(chóng)簡(jiǎn)介1. 介紹網(wǎng)絡(luò)爬蟲(chóng)
發(fā)表于 01-11 06:32

完全自學(xué)指南Python爬蟲(chóng)BeautifulSoup詳解

完全自學(xué)指南Python爬蟲(chóng)BeautifulSoup詳解
發(fā)表于 09-07 08:55 ?39次下載
完全自學(xué)指南<b class='flag-5'>Python</b><b class='flag-5'>爬蟲(chóng)</b>BeautifulSoup詳解

Python爬蟲(chóng)8個(gè)常用的爬蟲(chóng)技巧分析總結(jié)

python也差不多一年多了,python應(yīng)用最多的場(chǎng)景還是web快速開(kāi)發(fā)、爬蟲(chóng)、自動(dòng)化運(yùn)維:寫(xiě)過(guò)簡(jiǎn)單網(wǎng)站、寫(xiě)過(guò)自動(dòng)發(fā)帖腳本、寫(xiě)過(guò)收發(fā)郵件腳本、寫(xiě)過(guò)
的頭像 發(fā)表于 08-18 11:45 ?5127次閱讀

python爬蟲(chóng)入門教程之python爬蟲(chóng)視頻教程分布式爬蟲(chóng)打造搜索引擎

本文檔的主要內(nèi)容詳細(xì)介紹的是python爬蟲(chóng)入門教程之python爬蟲(chóng)視頻教程分布式爬蟲(chóng)打造搜索引擎
發(fā)表于 08-28 15:32 ?29次下載

python為什么叫爬蟲(chóng) python工資高還是java的高

要寫(xiě)1000代碼,java要寫(xiě)100,而python則只需要寫(xiě)20代碼。使用
發(fā)表于 02-19 17:56 ?559次閱讀

python實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)的資料說(shuō)明

本文檔的主要內(nèi)容詳細(xì)介紹的是python實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)的資料說(shuō)明。
發(fā)表于 11-02 17:53 ?21次下載
<b class='flag-5'>python</b>實(shí)現(xiàn)<b class='flag-5'>簡(jiǎn)單</b><b class='flag-5'>爬蟲(chóng)</b>的資料說(shuō)明

榮耀手表GS Pro星空版發(fā)布:首銷1299元

,將于今天 12 點(diǎn)開(kāi)售。 榮耀手表 GS Pro 星空版靈感來(lái)自 Discovery 對(duì)未知星空的探索,將金星的璀璨顏色運(yùn)用到了表圈和側(cè)面按鍵的設(shè)計(jì),同時(shí)以手工拋光、拉絲、不銹鋼精工和蝕刻工藝搭配
的頭像 發(fā)表于 01-22 13:52 ?1857次閱讀

Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)

Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)的方法說(shuō)明。
發(fā)表于 06-01 11:55 ?21次下載

利用Python編寫(xiě)簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)實(shí)例

利用 Python編寫(xiě)簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)實(shí)例2 實(shí)驗(yàn)環(huán)境python版本:3.3.5(2.7下報(bào)錯(cuò)
發(fā)表于 02-24 11:05 ?14次下載

crawlerdetect:Python代碼檢測(cè)爬蟲(chóng)

是否擔(dān)心高頻率爬蟲(chóng)導(dǎo)致網(wǎng)站癱瘓? 別擔(dān)心,現(xiàn)在有一個(gè)Python寫(xiě)的神器——crawlerdetect,幫助你檢測(cè)爬蟲(chóng),保障網(wǎng)站的正常運(yùn)轉(zhuǎn)。 1.準(zhǔn)備 開(kāi)始之前,你要確保Python
的頭像 發(fā)表于 11-02 11:31 ?627次閱讀

電子發(fā)燒友

中國(guó)電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品