python中scrapy可以爬取多少数据_python scrapy框架爬取某站博人传评论数据

1. B站博人传评论数据爬取简介

今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看。网址: https://www.bilibili.com/bangumi/media/md5978/?from=search&seid=16013388136765436883#short

在这个网页看到了18560条短评,数据量也不大,抓取看看,使用的还是scrapy。854c307dce41d20a9476ffaf02f02055.png

67b4c40c02428c3086ef5a6dc0792833.png

2. B站博人传评论数据案例---获取链接

从开发者工具中你能轻易的得到如下链接,有链接之后就好办了,如何创建项目就不在啰嗦了,我们直接进入主题。f1511390ed967ad21306e537b5abfb2c.png

我在代码中的parse函数中,设定了两个yield一个用来返回items 一个用来返回requests。

然后实现一个新的功能,每次访问切换UA,这个点我们需要使用到中间件技术。

116fec099638c9023506a57b15bd794f.png

3. B站博人传评论数据案例---实现随机UA

第一步, 在settings文件中添加一些UserAgent,我从互联网找了一些

7fa0ff80fe7027bea5c0ac1c536eb438.png

第二步,在settings文件中设置 “DOWNLOADER_MIDDLEWARES”

7a7e6b60373c7fa2fb1235fa5138016c.png

第三步,在 middlewares.py 文件中导入 settings模块中的 USER_AGENT_LIST 方法

273797a6ded90a8ead727a2a1eb20343.png

好了,随机的UA已经实现,你可以在parse函数中编写如下代码进行测试

b0cae8d3ecdc0f76e6717f3fd83f0690.png

4. B站博人传评论数据----完善item

这个操作相对简单,这些数据就是我们要保存的数据了。!

0594a5ee8bf64ee9f1c5e0058767bae2.png

5. B站博人传评论数据案例---提高爬取速度

在settings.py中设置如下参数:

a7b6ee0c56cef0b6882429547500ad5f.png

解释说明

一、降低下载延迟

DOWNLOAD_DELAY = 0

将下载延迟设为0,这时需要相应的防ban措施,一般使用user agent轮转,构建user agent池,轮流选择其中之一来作为user agent。

二、多线程

CONCURRENT_REQUESTS = 32

CONCURRENT_REQUESTS_PER_DOMAIN = 16

CONCURRENT_REQUESTS_PER_IP = 16

scrapy网络请求是基于Twisted,而Twisted默认支持多线程,而且scrapy默认也是通过多线程请求的,并且支持多核CPU的并发,我们通过一些设置提高scrapy的并发数可以提高爬取速度。

三、禁用cookies

COOKIES_ENABLED = False

6. B站博人传评论数据案例---保存数据

最后在pipelines.py 文件中,编写保存代码即可

fc5b4785fdb172ecf9aa111658e46c98.png

运行代码之后,发现过了一会报错了9cd8acbaabeee4cb449f6679d6306120.png

去看了一眼,原来是数据爬取完毕~!!!

065577381c5a9e80b44dc4bd90cf7a95.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值