
scrapy框架
文章平均质量分 55
辉辉咯
技术才是硬实力
展开
-
python爬虫xpath非常实用的知识点
用python写爬虫的时候,我们需要提取网页的数据,这时就用到BeautifulSoup或者XPath,学会一种并且掌握已经足够用了,我建议用xpath。BeautifulSoup和XPath的原理不一样,BeautifulSoup是基于DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多。而lxml只会局部遍历。BeautifulSoup是一个第三方的Pytho...原创 2018-08-03 22:23:20 · 802 阅读 · 0 评论 -
scrapy配置爬虫关闭的条件
在scrapy的默认配置文件中看到这四个配置:CLOSESPIDER_TIMEOUT = 0CLOSESPIDER_PAGECOUNT = 0CLOSESPIDER_ITEMCOUNT = 0CLOSESPIDER_ERRORCOUNT = 0这四个配置是配置爬虫自动关闭条件的,等于0代表不开启。CLOSESPIDER_TIMEOUT默认值:0一个整数值,单位为秒。...原创 2018-10-24 00:06:39 · 6084 阅读 · 1 评论 -
scrapy下载中间件设置User-Agent和IP代理注意细节
在使用scrapy写爬虫的时候经常使用代理来避免被禁,也可以通过下载延迟download_delay等方式,在设置代理的时候需要注意两个细节,虽然不是重点,但是这也是一个隐藏的坑点。1. SPIDER_MIDDLEWARES 和 DOWNLOADER_MIDDLEWARES 会容易混淆,因为在默认的settings里这两个配置很靠近,很容易将DOWNLOADER_MIDDLEWARES 的设置...原创 2018-10-10 15:52:07 · 768 阅读 · 0 评论 -
scrapy中meta的一个坑点
scrapy的meta的作用就是在执行scrapy.Request()函数时把一些回掉函数中需要的数据传进去,meta必须是一个字典,在下一个函数中可以使用response.meta防问,这里需要注意的是,meta传递的数据是浅拷贝传递的,如果传递的数据是可变的数据类型,那么很容易造成数据不对应的错误,以下是本人在工作中的遇到此问题的代码片段: def parse_jinyan(sel...原创 2018-10-17 21:08:00 · 4284 阅读 · 1 评论 -
Windows与python2.7环境下部署scrapy项目遇到的问题
在windows环境中,当我们需要部署scrapy项目到服务器时,常用到scrapyd,作为部署管理工具,在服务器端安装scrapyd并运行后,就可以正常使用。但是,当我们需要将windows本地的scrapy项目部署到服务器上时,需要安装scrapyd-client,用于打包项目,并发送给远程的scrapyd。安装scrapyd与scrapyd-client可以使用以下两种方式: p...原创 2018-09-28 00:27:09 · 984 阅读 · 0 评论 -
scrapy.Spider中close方法的作用
在scrapy中,需要实现的爬虫类都需要继承scrapy.Spider类,其中的源码解析:class Spider(object_ref): name = None #爬虫的名字,spider的名字定义了Scrapy如何定位(并初始化)spider custom_settings = None #当启动spider时,该设置将会覆盖项目级的相同设置. def __i...原创 2018-09-25 23:56:33 · 8786 阅读 · 0 评论 -
scrapy 在Request中设置flag,针对性处理对应的request
在构造Request时,增加flags这个参数,该参数会被转换为列表类型,查看源码的转换self.flags = [] if flags is None else list(flags)yield scrapy.Request( url=url, meta={'id': id}, ...原创 2018-09-20 14:31:18 · 1621 阅读 · 0 评论 -
scrapy 通过 CrawlerProcess 来同时运行多个爬虫
直接上例子代码:# coding: utf8from scrapy.crawler import CrawlerProcessfrom scrapy.utils.project import get_project_settingsfrom werkzeug.utils import import_string, find_modulesscope = 'all'process...原创 2018-09-20 00:25:49 · 6526 阅读 · 1 评论 -
scrapy信号 signals 笔记
Scrapy使用信号来通知scrapy启动和关闭等事情的发生。可以在Scrapy项目中捕捉一些信号(使用 extension)来完成额外的工作或添加额外的功能,扩展Scrapy。scrapy内置信号engine_started = object()engine_stopped = object()spider_opened = object()spider_idle = objec...原创 2018-09-19 23:48:45 · 3375 阅读 · 0 评论 -
scrapy组件、中间件、spider中类方法from_crawler的作用
@classmethoddef from_crawler(cls, crawler, *args, **kwargs): spider = cls(*args, **kwargs) spider._set_crawler(crawler) return spidercls代表这个类,因此,以下是用给定的参数创建了一个cls类的实例spider。参数会经过__i...原创 2018-09-18 00:12:04 · 6567 阅读 · 0 评论 -
安装splash
splash是用容器Docker安装的,而Docker安装仅介绍了在linux和 mac os上的容器安装,所以首先要在windows下安装容器docker在windows下的安装 首先点击下面链接,从docker官网上下载windows下的docker进行安装,不过请注意系统要求是**windows1064位 pro及以上版本或者教育版 **,本文使用为非windows10 pro版本...原创 2018-09-11 23:31:44 · 5038 阅读 · 1 评论 -
scrapy中的settings详解
一、有5种类型的Settings,优先级由高到低1. 命令行选项命令行提供的参数是最优先的参数,覆盖其他任何地方设置的参数。您可以使用-s(或--set)命令行选项覆盖一个(或多个)设置。使用-s复写设置,如scrapy crawl myspider -s LOG_FILE=scrapy.log2. 每个spider的settingspider可以定义自己的设置,这些设置优先并...原创 2018-08-24 00:12:39 · 1822 阅读 · 0 评论 -
scrapy中的请求错误回调函数errback
在处理请求时引发任何异常时将调用的函数。这包括因404 HTTP错误而失败的页面等。它接收Twisted Failure实例作为第一个参数。import scrapyfrom scrapy.spidermiddlewares.httperror import HttpErrorfrom twisted.internet.error import DNSLookupErrorfr...原创 2018-08-02 21:57:02 · 6497 阅读 · 0 评论 -
scrapy报错:twisted.python.failure.Failure twisted.web._newclient.ParseError
scrapy项目开发过程中,scrapy运行请求返回解析错误:2018-12-21 13:02:19 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://map.haodf.com/hospital/DE4raCNSz6Om-9cfC2nM4CIa/map.htm> (failed 1 times):...原创 2018-12-25 00:05:38 · 6049 阅读 · 0 评论