我们知道编写一个爬虫之前最重要的是进行网页结构的分析,确定你要抓取的部分是属于网页结构的哪一部分。以“你绝对没听过的梁朝伟唱歌 一开口就苏了 可惜被梁家辉开腔了”为例子,打开谷歌浏览器的开发者工具,分析网页结构。
我们会发现,弹幕列表一栏对应的网页结构并不是我们想抓取的弹幕文件,那么弹幕文件在哪那?很简单,由于弹幕是滚动播放的,所以有一个快速找到弹幕文件的方法。在开发者工具中点击network。
重新加载页面(一定要刷新一下),在搜索里输入xml(弹幕一般为xml文件)
在新的窗口将其打开,来看看到底是不是我们要找的弹幕文件
确实是,分析一下这个弹幕文件的网址,图中框起来的是视频的cid号,并不是av番号。所以有两种抓取方式,一种是用正则表达式匹配cid,一种是直接抓取整个网页的方式。
我确实尝试了两种方式,正则表达式是借鉴别人的,但是代码只能用运行两次,就会被封号(因为这种方法要写代理)。我就自己写了一个直接抓取网页的代码,比较简单也没有风险,唯一麻烦的是爬取弹幕之前要先查找出cid。这就再次说明了,在写爬虫的时候urllib2和BeautifulSoup的方式要比正则表达式更健壮。下面直接上代码(python3.6环境,抓取弹幕文本并将其写入名为text30的文件中)
今天的分享就是这些了,下次将继续分享利用python进行数据分析和制作词云!比心
以人文之情怀
以学术为志业
···········
2018年最值得期待的活动:
三位教育部青年长江学者领衔,邀你深度研修社会科学研究方法,2018前沿社会科学研究方法暑期高级研修班(点击)正在火热报名中,按照报名顺序优先安排座位哦!
扫码报名
领取专属 10元无门槛券
私享最新 技术干货