随笔分类 - scrapy
摘要:这期间,已经使用了 User-Agent,并且源连接直接在浏览器打开并不跳转,也使用requests测试,发现并没有被重定向。 搜索很久很久无果,然后无奈开始关注 [scrapy.downloadermiddlewares.redirect] DEBUG 这个东西难道是我开启了某个配置,检查完并没有
阅读全文
摘要:def start_requests(self): for i1 in self.start_urls: data = { 'page': '1', 'rows': '20', 'annNum': '1678', 'annType': '', 'tmType': '', 'coowner': '',
阅读全文
摘要:原来的scrapy中的Scheduler维护的是当前机器中的任务队列(存放着Request对象以及回调函数等信息) + 当前的去重队列(存放访问过的url地址) 实现分布式的关键就是需要找一台专门的主机在上面运行一个共享的队列,比如redis。然后重写scrapy的Scheduler,让新的Sche
阅读全文
摘要:HTTP代理服务器可以比作客户端与Web服务器网站之间的一个信息中转站,客户端发送的HTTP请求和Web服务器返回的HTTP响应通过代理服务器转发给对方, 爬虫程序在爬取某些网站的时候也需要使用代理,例如 由于网络环境因素,直接爬取的速度太慢了,使用代理提高爬取的速度 某些网站读用户的访问速度进行限
阅读全文
摘要:登录的实质就是朝着服务器发送含有登录表单数据的HTTP请求(通常都是POST)。 scrapy提供了一个FormRequest类,是Request的子类,专门用来构造含有表单数据的请求,FormRequest的构造器方法有一个formdata参数,接受字典形式的表单数据。 在spider中使用For
阅读全文
摘要:下载文件是一种很常见的需求,例如当你在使用爬虫爬取网站中的图片、视频、word、pdf、压缩包等的时候 scrapy中提供了FilesPipeline和ImagesPipeline,专门用来下载文件和图片: 我们其实可以把这两个item pipeline看成是特殊的下载器,用户使用的时候只需要通过i
阅读全文
摘要:le = LinkExtractor(restrict_css='ul.pager li.next') links = le.extract_links(response) 使用LinkExtractor的过程: 导入LinkExtractor,它是在scrapy中linkextractors中 创
阅读全文
摘要:利用item pipeline可以实现将数据存入数据库的操作,可以创建一个关于数据库的item pipeline 需要在类属性中定义两个常量 DB_URL:数据库的URL地址 DB_NAME:数据库的名字 在Spider爬取的整个过程中,数据库的连接和关闭操作只需要进行一次就可以,应该在开始处理之前
阅读全文
摘要:当为了确保爬到的数据中没有重复的数据的时候,可以实现一个去重的item pipeline 增加构造器方法,在其中初始化用于对与书名的去重的集合 在process_item方法中,先取出item中要判断的字段的名称,检查是否已经存在集合中了,如果已经存在了就是重复的数据抛出一个DropItem的异常,
阅读全文
摘要:在创建一个scrapy项目的时候,会自动生成一个pipeliens.py文件,它是用来放置用户自定义的item pipeline, 一个 item pipeline不需要继承特定的基类,只需要实现某些特定的方法,例如process_item、open_spider、close_spider 一个it
阅读全文
摘要:1、创建对象 Selector类的实现位于scrapy.selector模块,创建Selector对象的时候,可以将页面的Html文档字符串传递给Selector构造器方法 2、选中数据 调用Selector对象的xpath或者css方法(传入xpath或者css选择器表达式),可以选中文档中的某一
阅读全文
摘要:前言: 如果框架中的组件比做成是人的各个器官的话,那个Request和Response就是血液,Item就是代谢产物 Request对象: 是用来描述一个HTTP请求,其构造参数有 这里面虽然有很多参数,但是除了url意外其它的都是可选参数,是带有默认值的。在构造Request对象的时候,通常我们只
阅读全文
摘要:CrawlSpider类通过一些规则(rules),使对于链接(网页)的爬取更具有通用性,换句话说CrawlSpider爬虫是通用性爬虫,那么Spider爬虫就更像是为了一些特殊网站制定的爬虫 创建一个工程: scrapy startproject crawlspider scrapy genspi
阅读全文
摘要:增加并发 默认scrapy开启的并发线程的个数是32个,可以适当的进行增加。在settings中进行设置CONCURRENT_REQUESTS=100 降低日志级别 在运行的时候,会有大量的日志信息的输出,为了减少CPU的使用率。可以设置log输出的信息是INFO或者是ERROR就可以了LOG_LEVEL=‘INFO’ 禁止cookie 如果不是真的需要cookie的话,可以在scrapy爬...
阅读全文
摘要:Spiders: 负责处理所有的response,从这里面分析提取数据,获取Item字段所需要的数据,并将需要跟进的URL提交给引擎,再次进入到Scheduler调度器中 Engine: 框架的核心,负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号
阅读全文
摘要:scrapy是一个python爬虫框架,爬取的效率极高,具有高度的定制性,但是不支持分布式。而scrapy-redis是一套基于redis库,运行在scrapy框架之上的组件,可以让scapy支持分布式策略 Slaver端共享Master端redis数据库里的item 队列、请求队列和请求指纹集合。
阅读全文
摘要:首先要说一下scrapy-redis 配置文件settings主要配置Scrapy_Redis的功能,其中配置SCHEDULER是改变Scrapy原有的调度器。当项目运行的时候,Scrapy从配置文件中读取配置信息,根据配置信息运行Scrapy_Redis的功能,使得整个项目的调度器Schedule
阅读全文
摘要:首先需要确定要爬取的内容,所以第一步就应该是要确定要爬的字段: 首先去items中确定要爬的内容 在确定完要爬的字段之后,就是分析网站页面的请求了,找到自己需要的内容,我这里爬的是http://www.win4000.com里面的壁纸照片 首先我们在分析的时候,点到一个图集里面可以发现,真正的照片都
阅读全文
摘要:在python爬虫中:使用requests + selenium就可以解决将近90%的爬虫需求,那么scrapy就是解决剩下10%的吗? 这个显然不是这样的,scrapy框架是为了让我们的爬虫更强大、更高效的存在,所以我们有必要好好了解一下scrapy框架。 scrapy是一个为了爬取网站数据,提取
阅读全文
摘要:可能会报错: 这时候安装pip install pillow库就可以了
阅读全文

浙公网安备 33010602011771号