scrapy实践之settings的配置

在scrapy创建的爬虫项目中,包括了以下4个基本文件

1. items.py

2. middlewares.py

3. pipelines.py

4. settings.py

items定义了需要从网页中提取的结构化信息,middlewares称之为中间价,用于对request和response请求进行封装,pipelines用于对item近一步处理,比如去重等操作,而settings则用于设置各种信息。

对于settings.py,通常由以下3种使用场景

1. 启动自定义配置

middlewares和pipelines中定义的各种元素,都需要在settings中进行设置之后,才可以启动,以下载中间件为例,配置如下

DOWNLOADER_MIDDLEWARES = {
   'hello_world.middlewares.UserAgentMiddleware': 543,
   'hello_world.middlewares.SeleniumMiddleware': 600,
}
包括item pipelines, download/spider middlewares等各种元件,都需要在这里进行配置。

2.  修改系统配置

scrapy中内置了很多的系统配置,我们可以在settings.py中对其进行修改,比如修改默认的request headers, 用法如下

DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
}

系统配置很多,可以根据需要进行设置。

3. 自定义信息

对于自定义的常量,可以在settiings中进行设置,方便全局使用,比如定义如下的用户代理池

UA_POOL = [
'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/31.0.842.0 Safari/535.2',
'Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/32.0.813.0 Safari/535.1'
'Mozilla/5.0 (Windows 95) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/43.0.887.0 Safari/533.2'
'Mozilla/5.0 (Windows NT 5.0) AppleWebKit/536.0 (KHTML, like Gecko) Chrome/34.0.885.0 Safari/536.0',
]

定义之后,在下载中间件中,可以通过如下方式来使用

class UserAgentMiddleware(object):

def process_request(self, request, spider):
        request.headers['User-Agent'] = random.choice(spider.settings['UA_POOL'])

通过类似字典的方式来访问settings.py中定义的系统常量。熟练掌握settings的配置功能,是玩转scrapy框架的基础。

·end·
(0)

相关推荐

  • 怎么用Python写爬虫抓取网页数据

    机器学习首先面临的一个问题就是准备数据,数据的来源大概有这么几种:公司积累数据,购买,交换,政府机构及企业公开的数据,通过爬虫从网上抓取.本篇介绍怎么写一个爬虫从网上抓取公开的数据. 很多语言都可以写 ...

  • requests模块的入门使用

    requests模块的入门使用 dongge-destiny 2018-07-11 00:10:18  137  收藏 分类专栏: python-爬虫 文章标签: requests模块的入门使用 版权 ...

  • scrapy 爬取网上租房信息

    一.背景 为了分析一线城市的房价在工资的占比,我用Python分别爬取了自如以及拉勾的数据.(见公众号「Crossin的编程教室」今天第1条推送) 本文使用 scrapy 进行爬取自如所有城市的租房信 ...

  • fake-useragent库:值得花2分钟学习的库

    前几天意外找到一个简单实用的库- fake-useragent,可以伪装生成headers请求头中的User Agent值.再也不用,重复做复制粘贴这种很Low的工作了. 安装 pip3 instal ...

  • Python爬虫学习笔记(三)

    Cookies: 以抓取https://www.yaozh.com/为例 Test1(不使用cookies): 代码: import urllib.request# 1.添加URLurl = &quo ...

  • 浏览器的“套娃行为”有多凶残?

    几乎所有的中国网民都不会忘记 2010 年的"3Q大战". 在腾讯做出那个"非常艰难的决定"之后,360 不但不能与 QQ 同时安装了,使用 360 浏览器的用 ...

  • scrapy实践之中间件的使用

    在scrapy框架中,Downloader Middlewares 称之为下载中间件, 可以对爬虫的requests请求进行封装处理,典型的应用有以下3种 1. 添加用户代理 所有的中间件代码都保存在 ...

  • scrapy实践之item pipeline的使用

    spider以item的形式返回结构化的信息,这些信息会传递给item pipeline进行处理.在这个环节,我们可以根据需要对数据进一步处理,经典的处理场景有以下几种 1. 去重复 根据业务场景来判 ...

  • scrapy实践之翻页爬取

    在scrapy框架中,spider具有以下几个功能 1. 定义初始爬取的url 2. 定义爬取的行为,是否跟进链接 3. 从网页中提取结构化数据 所谓的跟进链接,其实就是自动爬取该页的所有链接,然后顺 ...

  • SSD硬盘配置最佳实践

    本文原创作者杜霆,京东商城基础平台部MySQL DBA,经作者同意发表于本人博客,如需转载需经本人同意.一.测试背景服务器升级SSD后,速度和性能没有得到应有的提升,原因是没有正确使用SSD,主要是r ...

  • 生产建设项目水土保持植物措施对位配置理论与实践

    本期期刊速读内容来自<中国水土保持>杂志2020年第11期文章<生产建设项目水土保持植物措施对位配置理论与实践>,作者孙中峰,杨文姬. 孙中峰(1972-),男,吉林伊通满族自 ...

  • NGS数据分析实践:01. Conda环境配置及软件安装

    NGS数据分析实践:01. Conda环境配置及软件安装

  • 徐怀书的经方实践

    徐怀书的经方实践

  • 组织活力建设:PRE 活力模型的构建与应用实践

    方向只能大致正确,组织要确保活力,这远比很多企业家功成名就了总结出来的战略思想靠谱的多. T&D 在多年第四方深度诊断与经营质量变革项目中的经验提炼总结的组织活力模型-PRE 活力模型给更多的 ...

  • 微服务实践之分布式定时任务

    承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC .本篇讲讲如何接入 异步任务 以及 log的使用. Delay Job 日常任务开放 ...