国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Python3抓取貓眼電影數(shù)據(jù)

2018-09-15 15:53 更新
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解

導(dǎo)語

T_T 愚人節(jié)似乎不宜出門?

那就爬波貓眼電影看看有什么值得看的電影?

于是T_T

大概是沒什么技術(shù)含量的~~~

Let's Go!??!

相關(guān)文件

百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1WJ8PL5nydttXjteQOWqRrg 

密碼: v78a

開發(fā)工具

Python版本:3.6.4

相關(guān)模塊:openpyxl模塊;requests模塊;win_unicode_console模塊;bs4模塊;以及一些Python自帶的模塊。

環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

主要思路

目的:

爬取http://maoyan.com/films中的電影信息:

其中要爬取的內(nèi)容為:

電影名、電影評(píng)分、電影介紹頁鏈接以及電影簡介。

思路:

先爬取電影名、電影評(píng)分和電影介紹頁鏈接,再根據(jù)電影介紹頁鏈接爬取電影簡介。

這么算下來,一頁30部電影,需要31個(gè)requests。

結(jié)果只是為了爬這么點(diǎn)數(shù)據(jù),效率可想而知T_T

最后把爬到的數(shù)據(jù)存入Excel中。

具體實(shí)現(xiàn)方式詳見相關(guān)文件中的源代碼。

補(bǔ)充說明

(1)cookies.py文件中的cookie獲取方式

按上圖所示方式獲得cookie值后填入cookies.py文件的相關(guān)位置中:

第一個(gè)Cookies列表是不含登錄信息的cookie;

第二個(gè)login_Cookies列表是含登錄信息的cookie。

含登錄信息的cookie獲取方式和不含登錄信息的cookie獲取方式相同,但是需要事先在網(wǎng)頁上登錄(登錄選項(xiàng)在網(wǎng)頁的右上角)。

(2)關(guān)于貓眼的反爬蟲

貓眼電影的反爬蟲機(jī)制十分到位。T_T

首先是對(duì)于非登錄用戶,你只能查看前100頁的電影信息。其次,如果你的請(qǐng)求過于頻繁,是會(huì)被封的:

經(jīng)過測(cè)試,得到的結(jié)論如下:

設(shè)置隨機(jī)的時(shí)間間隔并不有效防止ip被封;

更換cookie值無法防止ip被封;

爬取20頁左右的電影數(shù)據(jù)后代碼就GG了等等。

沒有仔細(xì)研究貓眼電影是如何識(shí)別爬蟲的。

但是可以感覺出其識(shí)別機(jī)制很智能。

比如我被封之后想嘗試通過更換ip解決,但是我發(fā)現(xiàn)更換ip地址之后可以獲取的數(shù)據(jù)量竟然比前一個(gè)ip少了很多。

因此,本人提供的正版源代碼沒有想過和貓眼的維護(hù)人員斗智斗勇,只是加了個(gè)隨機(jī)的時(shí)間間隔??梢耘廊〉臄?shù)據(jù)量在25頁左右。選個(gè)電影而已,不想搞這么復(fù)雜。斗智斗勇的結(jié)果可能就是驗(yàn)證碼輸入越來越麻煩,給網(wǎng)站帶來不必要的壓力,影響正常用戶的使用體驗(yàn)等等。弊大于利。

反爬蟲解決方案

為了不讓爬蟲愛好者失望,還是稍微提一下吧~~~

網(wǎng)上關(guān)于反爬蟲機(jī)制的解決方案很多,比如使用代理池之類的等等。

本人只是針對(duì)貓眼電影信息爬取過程中存在的反爬蟲機(jī)制提出一項(xiàng)解決方案。

方案很簡單,它不就是想讓我們輸入驗(yàn)證碼來證明我們是人嘛~~~那就證明給它看咯。

簡單測(cè)試后可以發(fā)現(xiàn):

只要把識(shí)別之后的驗(yàn)證碼和一些其他參數(shù)以post的方式請(qǐng)求:

http://maoyan.com/films?__oceanus_captcha=1

這個(gè)鏈接就可以解除ip封鎖~~~

很簡單。

我在相關(guān)文件中提供了一個(gè)測(cè)試版本(test.py)。

至于驗(yàn)證碼獲取的接口以及驗(yàn)證碼如何自動(dòng)識(shí)別,我就不一一介紹了,測(cè)試版本里也沒有(源代碼里獲取驗(yàn)證碼的接口只是臨時(shí)接口,所以不是一個(gè)普適的版本)。。。

感興趣的同學(xué)可以自己研究一下~~~

挺簡單的,方案也很多T_T,但是為了避免別人濫用我就不公布最終的驗(yàn)證碼破解版本了。

使用演示

在cmd窗口中運(yùn)行MY_Spider.py文件即可。

如下圖所示(爬取20頁數(shù)據(jù)):

其中9分以上的電影有:

摔跤吧!爸爸    

戰(zhàn)狼2    

小蘿莉的猴神大叔    

厲害了,我的國    

尋夢(mèng)環(huán)游記    

霸王別姬    

速度與激情7    

紅海行動(dòng)    

神秘巨星    

瘋狂動(dòng)物城    

冰雪奇緣    

泰坦尼克號(hào)    

看不見的客人    

泰坦尼克號(hào)3D    

速度與激情8    

奇跡男孩    

縫紉機(jī)樂隊(duì)    

夏洛特?zé)?   

戰(zhàn)狼    

湄公河行動(dòng)    

蝙蝠俠:黑暗騎士    

九品芝麻官    

頭號(hào)玩家    

唐人街探案2    

前任3:再見前任    

帕丁頓熊2    

公牛歷險(xiǎn)記    

辛德勒的名單    

一個(gè)人的課堂    

智取威虎山    

你的名字。    

英雄本色    

二十二    

美國隊(duì)長2    

刀劍神域:序列之爭    

銀河護(hù)衛(wèi)隊(duì)    

變形金剛4:絕跡重生    

我的少女時(shí)代    

春光乍泄    

閃光少女    

熊出沒·變形記    

羞羞的鐵拳    

芳華    

捉妖記    

建軍大業(yè)    

侏羅紀(jì)世界    

熊出沒·奇幻空間    

尋龍?jiān)E    

末日崩塌    

老炮兒    

熊出沒之熊心歸來    

比得兔    

戀愛回旋    

南極之戀    

追龍    

銀河護(hù)衛(wèi)隊(duì)2    

滾蛋吧!腫瘤君    

美人魚    

唐人街探案    

阿凡達(dá)    

拆彈·專家    

魔獸    

鋼鐵俠3    

藍(lán)精靈:尋找神秘村    

至愛梵高·星空之謎    

愛在記憶消逝前    

碟中諜5:神秘國度    

傲嬌與偏見    

That'all~~~

看電影去了~~~

更多

代碼截止2018-04-01測(cè)試無誤。

若日后貓眼電影有較大更新,源代碼將僅供參考。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)