浏览器里面能输入的最大url是有限制的

safari 最多 一万多

ie最少  2083

urllength中间件源码

谷歌和火狐正常 八千多

"""
Url Length Spider Middleware See documentation in docs/topics/spider-middleware.rst
""" import logging from scrapy.http import Request
from scrapy.exceptions import NotConfigured logger = logging.getLogger(__name__) class UrlLengthMiddleware(object): def __init__(self, maxlength):
self.maxlength = maxlength @classmethod
def from_settings(cls, settings):
maxlength = settings.getint('URLLENGTH_LIMIT')
if not maxlength:
raise NotConfigured
return cls(maxlength) def process_spider_output(self, response, result, spider):
def _filter(request):
if isinstance(request, Request) and len(request.url) > self.maxlength:
logger.debug("Ignoring link (url length > %(maxlength)d): %(url)s ",
{'maxlength': self.maxlength, 'url': request.url},
extra={'spider': spider})
return False
else:
return True return (r for r in result or () if _filter(r))

  

scrapy设置了默认的长度

如果要自己设置可以在setting里面增加配置

URLLENGTH_LIMIT = 60

如果url的长度超过了这个设置

会在运行打印日志 忽略这个url请求

logger.debug("Ignoring link (url length > %(maxlength)d): %(url)s ",
{'maxlength': self.maxlength, 'url': request.url},
extra={'spider': spider})

scrapy爬虫中间件-urlLength的更多相关文章

  1. scrapy 爬虫中间件-offsite和refer中间件

    环境使用anaconda 创建的pyithon3.6环境 mac下 source activate python36 mac@macdeMacBook-Pro:~$ source activate p ...

  2. scrapy 爬虫中间件 httperror中间件

    源码 class HttpErrorMiddleware(object): @classmethod def from_crawler(cls, crawler): return cls(crawle ...

  3. scrapy 爬虫中间件 deepth深度

    源码 class DepthMiddleware(object): def __init__(self, maxdepth, stats, verbose_stats=False, prio=1): ...

  4. Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...

  5. scrapy 基础组件专题(三):爬虫中间件

    一.爬虫中间件简介 图 1-1 图 1-2 开始这一张之前需要先梳理一下这张图, 需要明白下载器中间件和爬虫中间件所在的位置 下载器中间件是在引擎(ENGINE)将请求推送给下载器(DOWNLOADE ...

  6. scrapy架构与目录介绍、scrapy解析数据、配置相关、全站爬取cnblogs数据、存储数据、爬虫中间件、加代理、加header、集成selenium

    今日内容概要 scrapy架构和目录介绍 scrapy解析数据 setting中相关配置 全站爬取cnblgos文章 存储数据 爬虫中间件和下载中间件 加代理,加header,集成selenium 内 ...

  7. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】

    (1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...

  8. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  9. scrapy爬虫框架介绍

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...

随机推荐

  1. [转]Oracle左连接、右连接、全外连接以及(+)号用法

    原文地址:https://www.cnblogs.com/hehaiyang/p/4745897.html 阅读目录 1.准备工作 2.左外连接(LEFT OUTER JOIN/ LEFT JOIN) ...

  2. HTML a标签链接 设置点击下载文件

    通常情况下,为文件添加链接后,用户可以通过点击链接,直接将文件下载到本地,如下载 excel 表格等 <a href="/user/test/xxxx.excel">点 ...

  3. Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录

    Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录     Hadoop 2.6 的安装与配置(伪分布式) 下载并解压缩 配置 .bash_profile : ...

  4. git清除master分支所有commit

    原理:新切一个分支并切换到这个分支,删除原来的master分支,再将新分支变成master 步骤: 1. 创建并切换到新分支 git checkout --orphan latest_branch 2 ...

  5. c# .net framework 4.5.2 , Quartz.NET 3.0.7

    参考了:https://www.cnblogs.com/personblog/p/11277527.html, https://www.jianshu.com/p/b8e7e4deb60a .NET ...

  6. activiti学习5:开启流程和流程前进

    目录 activiti学习5:开启流程和流程前进 一.流程和任务的关系 二.开启流程 2.1根据流程定义key开启流程 三.查询用户任务 3.1 TaskQuery 四.完成任务 activiti学习 ...

  7. dp --- 二维dp + 最大上升子序列

    <传送门> 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 74477   Accepted: 27574 ...

  8. gtest入门

    介绍 gtest是谷歌开发的用来做C++单元测试的测试框架 基本概念 使用gtest,你就需要写断言(assertions),用来检查一个表达式是否为true.断言的结果有三个:正确.非致命错误.致命 ...

  9. C语言函数返回指针方法

    1.将函数内部定义的变量用static修饰 由于static修饰的变量,分配在静态内存区(类似于全局变量区),函数返回时,并不会释放内存,因此可以将要返回的变量加static修饰. int *test ...

  10. ElasticSearch监控工具 - cerebro

    官方地址:https://github.com/lmenezes/cerebro 需要有java环境 下载地址:https://github.com/lmenezes/cerebro/releases ...