56 行代碼,帶你爬取豆瓣影評

56 行代碼,帶你爬取豆瓣影評

來自專欄 Python程序員4 人贊了文章

(一)

今年的夏天,重慶的天氣一反常態,到如今快 6 月份,天氣還是非常的涼快。以前這個時候重慶早已 40° 高溫,稍微在街上行走十分鐘,就跟在操場跑了十圈一樣,滿身是汗。而如今出門,還要再多穿一件外套,深怕獨自在異鄉的自己,患上感冒。

天氣的涼爽,並沒有給人帶來平靜的心情。重慶這座年輕的城市,就像它的外號一樣「火爐」,時刻散發著它的活力。

(二)

這天小痴像往常一樣,開始早起乘坐兩路口的輕軌。小痴找到一個座位坐下,正準備拿出手機,看看今天都發生了趣事。但這時不遠處傳來嘈雜的聲響。原來是三個女生和另一男生,吵了起來。男生一口一個MMP,寶批龍,非常的讓人心生厭惡。而女生也不敢示弱,說著一口流利的重慶話,給予反擊。

(三)

小痴對於他們為何吵起,沒有任何的想法。但這樣的場景讓他想起,最近剛看的一篇電影《血觀音》。裡面同樣講述三個女人,但比這個吵架更加殘酷。

(四)

《血觀音》描述在女人組成的棠府里,住著3位不同世代但一樣懂人心的女性,由棠夫人(惠英紅飾)主持大局,穿梭權貴間,靠著高超手腕與柔軟身段,在複雜的政商關係中生存取利;個性如刺蝟般的大女兒棠寧(吳可熙飾)為求母親肯定,勉力配合;乖巧的小女兒棠真(文淇飾)多半靜靜觀察,唯母命是從。直到某天,棠家親密友人慘遭滅門事件爆發,三人各自被牽扯其中,一向以大局為重的棠夫人,為了守護一切,費盡心機,卻讓三人走向不同的命運。

這是豆瓣給出的劇情簡述。而今天給大家帶來的就是,通過 python 爬蟲技術,爬取《血觀音》短評,對於其它電影只要修改下 url 也可以爬取。

豆瓣影評爬蟲

此次的爬蟲程序,是用 requests + 正則表達式進行抓取。也是一位讀者昨天在後台問我,有沒有類似豆瓣影評爬蟲的程序。因為她在網上找的都不能用,剛好最近複習下正則表達式的使用,就順便寫了這個程序。(主要還是因為妹子)

程序抓取結果

運行程序最後會把爬取到的 User(用戶名)、Time(發布日期)、Content(評論結果),保存到 csv 文件中。

程序結構

程序主要有三個函數,分別是 get_one()、parse_page()、write_to_file()。

程序邏輯

首先進行目標網站的分析,打開豆瓣《血觀音》詳細頁面。在谷歌瀏覽器按 f12 進行頁面的分析。

從圖可以看出是用 GET 進行請求,還有一些請求頭的信息。在程序中我設置了 User-Agent 簡稱 UA,這個請求頭。UA 的設置是為了防止目標網站把我們的程序判定為是一個爬蟲,從而無法爬取。

通過 get_one() 這個函數進行數據的請求,函數返回請求的源代碼。接下來就是要進行數據的提取。

通過網頁結構分析,很容易找到我們需要的數據。比如上面圖中,就顯示用戶名這個信息是保存在 a 這個標籤中。對應的我們就可以使用正則表達式來獲取。當然你也可以使用其它的庫進行抓取,比如 xpath、beatifulsoup。

數據獲取到以後,再把得到的數據保存到,相應格式的文件中。此次的程序,我保存到 csv 文件中。

數據請求

欄位提取

數據存放

完整代碼我已上傳到公眾號「痴海」 上,需要的同學後台回復「豆瓣」即可下載。

公眾號每天分享 python 乾貨

weixin.qq.com/r/DUT64lX (二維碼自動識別)


推薦閱讀:

《追龍》我不想說什麼XX年來王晶最好的電影,只是確有些老港片記憶可供追懷
1月豆瓣電影口碑榜Top 20
生活太操蛋!這部勵志電影讓你提神醒腦
1月豆瓣電影口碑榜,春節補片就靠它了!
豆瓣9.0分的感人力作,十來年都沒能被超越!

TAG:豆瓣電影 | 豆瓣 | Python |