
scrapy
sliderSun
本人知乎ID:sliderSun
展开
-
CrawlSpider详解
CrawlSpider是爬取那些具有一定规则网站的常用的爬虫,它基于Spider并有一些独特属性rules: 是Rule对象的集合,用于匹配目标网站并排除干扰parse_start_url: 用于爬取起始响应,必须要返回Item,Request中的一个。因为rules是Rule对象的集合,所以这里也要介绍一下Rule。它有几个参数:link_extractor、callback=Non翻译 2017-07-21 09:53:29 · 2888 阅读 · 0 评论 -
scrapy-redis配置
Python 版本为 2.7,3.4 或者3.5 。个人使用3.6版本也没有问题Redis>=2.8Scrapy>=1.4Redis-py>=2.1 。3.X版本的Python 都是自带Redis-py 其余小伙伴如果没有的话、自己 pip 安装一下。开始搞事!开始之前我们得知道scrapy-redis的一些配置:PS 这些配置是写在Scra原创 2017-07-13 16:49:21 · 2585 阅读 · 0 评论 -
Scrapy-redis源码分析
scrapy是python的一个非常好用的爬虫库,功能非常强大,但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来,人多力量大。而scrapy-redis就是结合了分布式数据库redis,重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。 scrap原创 2017-07-13 10:25:46 · 898 阅读 · 0 评论 -
Scrapy-spiders(爬虫)
爬虫(Spiders)Spider 类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider 就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。对于spider,爬取循环做着下面的事情:首先生成抓取第一个URL的初始 request,request 下载完成后生成 resp翻译 2017-07-12 09:36:54 · 666 阅读 · 0 评论 -
Scrapy-Item Loaders(项目加载器)
项目加载器项目加载器提供了一种方便的机制来填充抓取的项目。即使可以使用自己的类似字典的API填充项目,项目加载器提供了一个更方便的API,通过自动化一些常见的任务,如解析原始提取的数据,然后分配它从剪贴过程中填充他们。换句话说,Items提供了抓取数据的容器,而Item Loader提供了填充该容器的机制。项目加载器旨在提供一种灵活,高效和容易的机制,通过爬虫或源格式(HT翻译 2017-07-11 15:11:44 · 1016 阅读 · 0 评论 -
Scrapy-Item Pipeline(项目管道)
Item Pipeline(项目管道)在项目被蜘蛛抓取后,它被发送到项目管道,它通过顺序执行的几个组件来处理它。每个项目管道组件(有时称为“Item Pipeline”)是一个实现简单方法的Python类。他们接收一个项目并对其执行操作,还决定该项目是否应该继续通过流水线或被丢弃并且不再被处理。项目管道的典型用途是:清理HTML数据验证抓取的数据(检查项目是否包含特翻译 2017-07-11 15:09:07 · 1701 阅读 · 0 评论 -
Scrapy-Request和Response(请求和响应)
请求和响应Scrapy的Request和Response对象用于爬网网站。通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。上面一段话比较拗口,有web经验的同学,应该都了解的,不明白看下面的图大概理解下。爬虫->Request:创建Request->Resp翻译 2017-07-11 15:06:50 · 30753 阅读 · 0 评论 -
Scrapy-Link Extractors(链接提取器)
链接提取器链接提取器是其唯一目的是从scrapy.http.Response最终将跟随的网页(对象)提取链接的对象。有Scrapy,但你可以创建自己的自定义链接提取器,以满足您的需求通过实现一个简单的界面。scrapy.linkextractors import LinkExtractor每个链接提取器唯一的公共方法是extract_links接收一个Respons翻译 2017-07-11 15:04:42 · 902 阅读 · 0 评论 -
Scrapy-settings源码分析
设置Scrapy设置允许您自定义所有Scrapy组件的行为,包括核心,扩展,管道和爬虫本身。设置的基础结构提供了键值映射的全局命名空间,代码可以使用它从中提取配置值。可以通过不同的机制来填充设置,这将在下面描述。这些设置也是选择当前活动Scrapy项目的机制(如果您有很多)。有关可用内置设置的列表,请参阅:内置设置参考。指定设置当你使用Scrapy,原创 2017-07-11 14:57:44 · 2410 阅读 · 0 评论 -
Scrapy阅读源码分析<四>
运行入口还是回到最初的入口,在Scrapy源码分析(二)运行入口这篇文章中已经讲解到,在执行scrapy命令时,调用流程如下:调用cmdline.py的execute方法调用命令实例解析命令行构建CrawlerProcess实例,调用crawl和start方法而crawl方法最终是调用了Cralwer实例的crawl,这个方法最终把控制权交由Engine,而start方法注原创 2017-07-06 12:29:43 · 3550 阅读 · 0 评论 -
Scrapy阅读源码分析<三>
爬虫类接着上次代码讲,上次的运行入口执行到最后是执行了Crawler的crawl方法:1234567891011121314151617181920212223@defer.inlineCallbacksdef crawl(self, *args, **kwargs): assert not self.crawling, "Crawling alrea原创 2017-07-06 10:39:59 · 2328 阅读 · 0 评论 -
Scrapy阅读源码分析<三>
核心组件初始化核心组件交互流程这次先来讲解这些核心组件初始化都做了哪些工作。爬虫类接着上次代码讲,上次的运行入口执行到最后是执行了Crawler的crawl方法:1234567891011121314151617181920212223@defer.inlineCallbacksdef crawl(self, *args, **kwargs)原创 2017-07-05 19:03:32 · 1592 阅读 · 1 评论 -
Scrapy阅读源码分析<二>
scrapy命令当用scrapy写好一个爬虫后,使用scrapy crawl 命令就可以运行这个爬虫,那么这个过程中到底发生了什么?scrapy命令从何而来?实际上,当你成功安装scrapy后,使用如下命令,就能找到这个命令:12$ which scrapy/usr/local/bin/scrapy使用vim或其他编辑原创 2017-07-05 14:34:24 · 9636 阅读 · 0 评论 -
Scrapy源码阅读分析<一>
介绍Scrapy是一个基于Python编写的一个开源爬虫框架,它可以帮你快速、简单的方式构建爬虫,并从网站上提取你所需要的数据。这里不再介绍Scrapy的安装和使用,本系列主要通过阅读源码讲解Scrapy实现思路为主。如果有不懂如何使用的同学,请参考官方网站或官方文档学习。(写本篇文章时,Scrapy版本为1.4)简单来说构建和运行一个爬虫只需完成以下几步:使用sc原创 2017-07-05 14:27:06 · 4761 阅读 · 2 评论