scrapy实践之settings的配置
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,
}
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框架的基础。
赞 (0)