爬虫手记(断点续爬)

安装reids数据库

安装scrapy

安装scrapy_redis

以上自行解决。

创建项目

 scrapy startprogect commit_spider
  1. 进入commit_spider目录
  2. scrapy genspider myspider nvd.nist.gov
  3. nvd.nist.gov是所要爬取网站的根域名

修改settings.py

ROBOTSTXT_OBEY = True
PROXY_LIST = [
{"ip_port": "http://211.137.52.158:8080"},
{"ip_port": "http://111.47.154.34:53281"},
{"ip_port": "http://183.220.145.3:80"},
{"ip_port": "http://223.100.166.3:36945"},
{"ip_port": "http://120.194.42.157:38185"},
{"ip_port": "http://223.82.106.253:3128"},
{"ip_port": "http://117.141.155.244:53281"},
{"ip_port": "http://120.198.76.45:41443"},
{"ip_port": "http://123.136.8.122:3128"},
{"ip_port": "http://117.141.155.243:53281"},
{"ip_port": "http://183.196.168.194:9000"},
{"ip_port": "http://117.141.155.242:53281"},
{"ip_port": "http://183.195.106.118:8118"},
{"ip_port": "http://112.14.47.6:52024"},
{"ip_port": "http://218.204.153.156:8080"},
{"ip_port": "http://223.71.203.241:55443"},
{"ip_port": "http://117.141.155.241:53281"},
{"ip_port": "http://221.180.170.104:8080"},
{"ip_port": "http://183.247.152.98:53281"},
{"ip_port": "http://183.196.170.247:9000"},]
UA_LIST = ['Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)', 'Mozilla/5.0 (compatible; U; ABrowse 0.6;  Syllable) AppleWebKit/420+ (KHTML, like Gecko)', 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR 3.5.30729)', 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR   3.5.30729)', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0;   Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;   SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; Acoo Browser; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Avant Browser)', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1;   .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)', 'Mozilla/4.0 (compatible; Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR 3.5.30729); Windows NT 5.1; Trident/4.0)', 'Mozilla/4.0 (compatible; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; Acoo Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727); Windows NT 5.1; Trident/4.0; Maxthon; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.2)', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)']DEFAULT_REQUEST_HEADERS = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-Language': 'en',
}DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
SCHEDULER_PERSIST = True
REDIS_URL = "redis://127.0.0.1:6379"

修改middlewares.py

from commit_spider.settings import PROXY_LIST,UA_LIST

新建两个类

class RandomProxy(object):def process_request(self,request,spider):proxy = random.choice(PROXY_LIST)request.meta['proxy'] = proxy['ip_port']class RandomUserAgent(object):def process_request(self,request,spider):ua = random.choice(UA_LIST)request.headers['User-Agent'] = ua

settings.py中的中间件把这两个类打开

    DOWNLOADER_MIDDLEWARES = {'commit_spider.middlewares.RandomProxy': 543,'commit_spider.middlewares.RandomUserAgent': 543
}

管道中打开 scrapy_redis管道##

 'scrapy_redis.pipelines.RedisPipeline': 400,

以上设置包括动态代理ip更换,userAgent随机更换,以及断点续爬设置使用redis数据库存储断点

接下来编写爬虫代码myspider.py

爬虫代码就是使用response.xpath或者bs4解析页面了,具体如何做都是套路,网上已经很多教程了。

爬虫手记(scrapy实现断点续爬,文章重点在设置)使用scrapy_redis相关推荐

  1. Scrapy_redis框架原理分析并实现断点续爬以及分布式爬虫

    1. 下载github的demo代码 1.1 clone github scrapy-redis源码文件 git clone https://github.com/rolando/scrapy-red ...

  2. yelp mysql_Scrapy断点续爬实现抓取Yelp美食网站数据

    Scrapy是一个非常强大的爬虫框架,只需极少代码便可应付一个简单爬虫. 但如果需要几十万几百万的数据量,中间一旦有中断,重新爬取则太浪费时间. 本文介绍一种思路,结合mysql,实现断点重爬的方式. ...

  3. Python爬虫框架 scrapy 入门经典project 爬取校花网资源、批量下载图片

    ####1.安装scrapy 建议:最好在新的虚拟环境里面安装scrapy 注意:博主是在 Ubuntu18.04 + Python3.6 环境下进行开发的,如果遇到安装scrapy不成功请自行百度/ ...

  4. Hadoop笔记之十七——爬虫框架scrapy实际案例(爬取安卓版QQ阅读)

    话不多说,我们的目的: 使用scrapy爬取安卓版QQ阅读所有的小说(只是小说的基本信息,小说内容是不要想的.千万不要想--) 环境准备 安卓收集模拟器:夜神模拟器 安卓手机抓包工具:fiddler ...

  5. 网络爬虫之Scrapy实战四:爬取网页下载图片

    在前面的章节中都介绍了scrapy如何爬取网页数据,今天介绍下如何爬取图片. 下载图片需要用到ImagesPipeline这个类,首先介绍下工作流程: 1 首先需要在一个爬虫中,获取到图片的url并存 ...

  6. Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息

    1. 任务描述 目标网站:http://www.mininova.org/yesterday/ 目标网站截图: ------------------------------------- 可以看到种子 ...

  7. 知乎爬虫(scrapy默认配置下单机1小时可爬取60多万条数据)

    知乎爬虫(scrapy默认配置下单机1小时可爬取60多万条数据) 版本:1.0 作者: AlexTan CSDN: http://blog.csdn.net/alextan_ e-mail: alex ...

  8. 用 Python 爬虫框架 Scrapy 爬取心目中的女神

    From :http://www.cnblogs.com/wanghzh/p/5824181.html 本博文将带领你从入门到精通爬虫框架 Scrapy,最终具备爬取任何网页的数据的能力. 本文以校花 ...

  9. Python爬虫进阶——Scrapy框架原理及分布式爬虫构建

    1 Scrapy简介 1.1 概念 Scrapy是由Python语言开发的一个快速.高层次的屏幕抓取和web信息抓取框架,用于抓取web站点并从页面中提取结构化的数据. Scrapy用途广泛,可以用于 ...

最新文章

  1. VMM系列之使用VMM服务器构建 Hyper-V 主机(3)
  2. Android 应用防止被二次打包指南
  3. 【工具使用系列】关于 MATLAB 液压机构,你需要知道的事
  4. 面向对象回顾(异常(try、catch、throw、throws和finally)、接口和抽象类、面向对象特征、泛型(extends/super))
  5. oracle timestamp比较大小_ORACLE包和过程依赖关系测试
  6. HDU 6264 Super-palindrome
  7. Class类中的getEnclosing*、getDeclared*与getDeclaringClass的区别
  8. sublime text3之修改注释颜色
  9. python第三方模块下载方法(最详最细)
  10. Python3爬虫韩寒新浪博客文章
  11. MySQL调优(二)——索引最佳实践
  12. ASAM:自动驾驶仿真测试标准引领者
  13. 单源最短路径-Dijkstra算法
  14. excel和matlab交互,Excel与Matlab的数据交互(精选5篇)
  15. 大学期间的副业赚钱之道
  16. dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算(终结版)
  17. 装了 Linux 之后就感到迷茫、不知该干什么的朋友看过来
  18. web2——影评网页
  19. 为什么要做汽车电子检测?国标检测及其目的
  20. 7-3 简版田忌赛马 (10 分)

热门文章

  1. 富斯遥控器/接收机的PWM/PPM/iBUS/SBUS通道设置
  2. 了解电感—参数、特性、选型
  3. R-CNN简述(目标检测篇)
  4. 原创:拆机联想Y330笔记本
  5. Office Excel阅读模式(记忆和高亮选中的单元格)的两种方法
  6. 信息设计软件+信息图表设计软件介绍
  7. 思科服务器连接无线打印机,经典解决方案 : 路由器直接连接打印机USB接口实现网络打印。...
  8. PDF编辑工具如何给PDF添加水印 添加水印的过程
  9. eassy--休假三天后决定再次写更新blog
  10. 课程设计书五子棋AI算法及其实现