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

阅读文本大概需要 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 文件中。

数据请求

字段提取

数据存放

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180531G0Q38100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券