在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中进行设置之后,才可以启动,以下载中间件为例,配置如下
代码语言:javascript复制DOWNLOADER_MIDDLEWARES = {
'hello_world.middlewares.UserAgentMiddleware': 543,
'hello_world.middlewares.SeleniumMiddleware': 600,
}
包括item pipelines, download/spider middlewares等各种元件,都需要在这里进行配置。
2. 修改系统配置
scrapy中内置了很多的系统配置,我们可以在settings.py中对其进行修改,比如修改默认的request headers, 用法如下
代码语言:javascript复制DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
系统配置很多,可以根据需要进行设置。
3. 自定义信息
对于自定义的常量,可以在settiings中进行设置,方便全局使用,比如定义如下的用户代理池
代码语言:javascript复制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',
]
定义之后,在下载中间件中,可以通过如下方式来使用
代码语言:javascript复制class UserAgentMiddleware(object):
def process_request(self, request, spider):
request.headers['User-Agent'] = random.choice(spider.settings['UA_POOL'])
通过类似字典的方式来访问settings.py中定义的系统常量。熟练掌握settings的配置功能,是玩转scrapy框架的基础。
·end·
—如果喜欢,快分享给你的朋友们吧—
原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。