• 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:点击进入

Crawler

Scrapy学习笔记(10)-重写start_requests方法实现动态入口

Scrapy学习笔记(10)-重写start_requests方法实现动态入口
前言通过之前的学习我们知道scrapy是将start_urls作为爬取入口,而且每次都是直接硬编码进去一个或多个固定的URL,现在假设有这么个需求:爬虫需要先从数据库里面读取目标URL再依次进行爬取,这时候固定的start_urls就显得不够灵活了,好在scrapy允许我们重写start_requests方法来满足这个需求。目标从库表scrapy.ta……继续阅读 »

4个月前 (01-28) 573浏览

Scrapy学习笔记(9)-使用scrapy-deltafetch实现增量爬取

Scrapy学习笔记(9)-使用scrapy-deltafetch实现增量爬取
前言在之前的文章中我们都是对目标站点进行全量爬取,只要爬虫run起来就会对所有的链接都爬取一遍,这其实是很傻的做法,因为很多情况下我们并不需要爬取已经爬过的链接,除非你需要定期更新这个链接对应页面上的数据。好了,回归正题,本文介绍scrapy使用scrapy-deltafetch这个插件来实现增量爬取,这里以爬取【美食杰】上的菜谱信息为例。正文安装s……继续阅读 »

4个月前 (01-27) 1559浏览

Scrapy学习笔记(8)-使用signals来监控spider的状态

Scrapy学习笔记(8)-使用signals来监控spider的状态
场景介绍有时候我们需要在spider启动或者结束的时候执行一些特定的操作,比如说记录日志之类的,在scrapy中我们可以使用signals来实现。主要实现代码如下:# -*- coding: utf-8 -*-from scrapy import signalsfrom scrapy.xlib.pydispatch import dispatc……继续阅读 »

1年前 (2016-12-19) 7575浏览

Scrapy学习笔记(7)-定制动态可配置爬虫

Scrapy学习笔记(7)-定制动态可配置爬虫
前言    最近一直想维护一个代理IP池,在网上找了三十多个免费提供代理IP的网站,想把这些代理都抓取下来存到本地数据库,再写一个守护进程定时去验证可用性和连接速度,剔除失效代理,以此来保证库里面始终都有特定数量的优质代理IP。那么问题来了,这么多网站每个网站的页面布局或者说网页源码都不一样,数据抓取规则也不一样,如……继续阅读 »

1年前 (2016-12-04) 18293浏览

Scrapy学习笔记(6)-反爬虫与反反爬虫策略

Scrapy学习笔记(6)-反爬虫与反反爬虫策略
前言    到目前为止我们已经写了好几个爬虫,虽然已经可以实现数据采集,但是我们的爬虫其实是在”裸奔”,因为没有加任何的伪装,很容易就可以被远程服务器识别出来,这也就意味着我们的爬虫很可能在采集了十几页数据或者运行几分钟之后就出现问题,轻则出现验证码或暂时访问不了目标站点,重则本机IP直接被拉入黑名单。你可能会说无图无真相,好吧,上……继续阅读 »

2年前 (2016-11-30) 22840浏览

Scrapy学习笔记(5)-CrawlSpider+sqlalchemy实战

Scrapy学习笔记(5)-CrawlSpider+sqlalchemy实战
前言在之前的文章Scrapy学习笔记(2)-使用pycharm在虚拟环境中运行第一个spider中有提到在使用scrapy genspider命令生成spider的时候可以使用-t参数来指定生成spider的模板,前面几篇文章中我们没有指定模板,所以都是使用最基本的Spider类来爬取数据。Spider其实能做很多事情了,但是如果你想对某个网站进行全站爬取……继续阅读 »

2年前 (2016-11-26) 3888浏览

Scrapy学习笔记(4)-实现多级链接跟随爬取以及数据传递

Scrapy学习笔记(4)-实现多级链接跟随爬取以及数据传递
前言系统环境:CentOS7本文假设你已经安装了virtualenv,并且已经激活虚拟环境ENV1,如果没有,请参考这里:使用virtualenv创建python沙盒(虚拟)环境,在上一篇文章(Scrapy学习笔记(3)-循环爬取以及数据库操作)中我们已经能够跟踪next(下一页)链接循环爬取http://quotes.toscrape.com/中的ar……继续阅读 »

2年前 (2016-11-19) 4566浏览