查看原文
其他

56 行代码,带你爬取豆瓣影评

Koc 痴海 2022-06-18

阅读文本大概需要 4.2 分钟。

(一)


今年的夏天,重庆的天气一反常态,到如今快 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 文件中。


数据请求


字段提取


数据存放



完整代码我已上传到 Github 上,需要的同学点击「阅读原文」即可获取。觉得程序还不错的话,不妨点个 star。


点赞、点广告是一种态度。


推荐阅读:

论如何利用 Python 优雅的找对象



每天分享 python 干货


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存