在上篇文章爬取豆瓣電影top250後,想一想既然爬了電影,乾脆就連影評也爬了,這樣能夠看看人們評價的電影,再加上剛出不久的移動迷官3好像挺熱的,乾脆就爬他吧,爬完看看好很差看!python
1.去找目標網頁並找到所要找的數據
正則表達式
一進去網頁就條件反射打開開發者工具,很容易就看到了這個數據庫
鼠標所點的就是我接下來要爬的網站,先看看他的response和請求頭之類的信息,他的請求方式時get,response是一個網頁結構,這就好辦了,咱們就能夠用正則來匹配出所要的數據,正則仍是個很好用的東西,請你們務必要學會啊。那接下來就動手敲代碼咯!服務器
2.用re+requests獲取數據微信
獲取信息
session
先把數據寫入txt文件中(打開的文件要指定編碼爲utf-8,要不會出現編碼問題,由於window的默認編碼方式是gbk,而你的編碼爲utf-8)
工具
正則表達式和網址
post
一點擊運行,只運行了兩頁,就出了問題,由於這個評論不止兩頁網站
調試了下,在獲取完第二頁的時候他返回了個不存在的網頁,致使個人正則表達式捕捉不到數據,出現了個空的page,因此就只下載了兩頁,這應該是被反爬了,繼續回網頁看看須要加什麼請求頭,然而我把所有的請求頭的信息都加了,仍是沒用,這就觸及到個人盲區了(尷尬臉),可是我能夠百度啊,百度一看,看見有人說模擬登錄就能夠了,那好,我就來模擬登錄一波!!!編碼
3.模擬登錄豆瓣
首先須要看看登錄須要什麼參數,這個參數是在豆瓣的登錄網址,先打開登錄,打開開發者工具(要不會看不到後面這個所須要的網頁),填好信息點擊登錄,而後點擊這個login網頁,往下拉就會看到From Data 這個框,這個就是登錄所要的參數
直接把他們複製過來便可
而後就用post把信息發到服務器完成登錄,可是這有個問題,怎麼保存登錄信息呢?這就須要用到Session()來保留了,可是注意,只須要創建一個會話信息就能夠了,不是每一個都用這個方法,我初學時就是犯這個錯誤以致於我搞了好久尚未登錄成功。代碼以下
而後用這個post上去,注意!注意!注意!post的網址是登錄網址,不是你要爬的網址,我剛學時也是被這個坑了好久(怎麼感受我不少問題),還有其餘用requests的都須要替換成self.ssession()
最後這樣
大功告成,因爲只能獲取500條這是由於豆瓣只開放了500條評論信息,多一條都不願給
4.登錄多了須要填驗證碼
因爲我屢次登錄註銷,而後我就須要填驗證碼了,然而這仍是難不到我,仍是分析網頁找出驗證碼圖片而後下載下來本身填寫,尚未那些大佬那麼厲害能夠用人工智能來填寫,代碼以下
還有將數據保留到數據庫,我就不貼了,代碼和上篇文章的差很少
經過這個我學會了使用session來保存會話信息來登錄簡單網頁,還能夠填寫驗證碼,本身仍是以爲有點高大上的,嘻嘻。因爲本人還沒學數據分析,就只能到這裏,而生成詞雲也有點不會,直接複製粘貼來無趣,因此就先不寫了,等大神你來寫吧!
最後很是感謝你看完了個人文章,若是以爲有用能夠點贊,轉發哈!若須要完整代碼在微信公衆號平常學python後臺回覆影評便可,若須要python相關的電子書也能夠回覆pdf得到,往後還會有更多福利發給你
平常學python
一個專一於python的公衆號