scrapy的暂停与重启

scrapy的暂停与重启,第1张

在爬取大型站点的时候,或遇到某些特殊情况的时候,往往需要赞同爬虫,并稍后再接着之前执行到的位置继续爬取,而不是每次出问题都从头开始。

scrapy的暂停与重启的设置很简单:

1.创建工作目录

2.用以下命令启动爬虫

上述命令中:

somespider : 启动的爬虫名

crawls/somespider-1 :你创建的工作目录+爬虫序号

后面的somespider-1是用来区分不同的爬虫的,因为官方文档提到了:

3.暂停爬虫

以上两步,爬虫便可以能暂停的状态运行,当你需要暂停的时候,只需在运行窗口发送暂停命令即可:

ctrl + c

tips:

4.暂停后的重启

输入与启动相同的命令即可:

然后爬虫就会接着上一次暂停后的位置继续运行。

完。

需要先导入random模块

然后在meddlewares.py中创建RandomUserAgentMiddleWare()类.重写scrapy内置的UserAgentMiddleware.

需要先导入UserAgent

from fake_useragen timport UserAgent

需要在settings.py中设置

# 用于配置随机user-agent的类型,如果值是random,表示任意随机一个;如果配置的是chrome,则只随机chrome中的user-agent.

RANDOM_UA_TYPE ='chrome'

最后同上面一样需要在settings.py中设置DOWNLOAD_MIDDLEWARES,将系统默认的随机请求头给禁掉,再添加我们自己定义的随机UserAgent

1.win10 下 win + r 打开cmd 切换新项目的目录

2.新建scrapy项目的命令:

可以利用pycharm 打开项目文件夹编辑项目

3.items.py

声明爬取的字段

4.新建scrapy 爬虫

用命令 scrapy genspider doubanmovie "movie.douban.com" 创建爬虫。

5.运行爬虫

5.1 创建运行脚本

(一)、在 scrapy.cfg 同级目录下创建 pycharm 调试脚本 run.py,避免每次运行爬虫输入密码,内容如下:

6.修改robottxt协议

修改 settings 中的 ROBOTSTXT_OBEY = True 参数为 False,因为默认为 True,就是要遵守 robots.txt 的规则, robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页不希望你进行爬取收录。在 Scrapy 启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。查看 robots.txt 可以直接网址后接 robots.txt 即可。

一般构建爬虫系统,建议自己编写Item Pipeline,就可以在open(path)选择自己的保存路径

参考: # scrapy爬虫事件以及数据保存为txt,json,mysql

7.1保存为json格式时出现乱码的解决方式:

scrapy抓取豆瓣书籍保存json文件乱码问题

中文默认是Unicode,如:

\u5317\u4eac\u5927\u5b66

在setting文件settings.py中设置:

就可以解决了

第二种解决办法

或在cmd中传入 -s FEED_EXPORT_ENCODING='utf-8'

参考: https://www.cnblogs.com/tinghai8/p/9700300.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12058510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存