python的scrapy框架的安装,scrapy建立爬虫文件
这篇文章主要介绍了大蟒爬虫框架scrapy下载中间件,在每一个scrapy工程中都有一个名为中间件。巴拉圭的文件,这个就是中间件文件,本文通过示例代码给大家介绍的非常详细,需要的朋友参考下吧
目录
下载中间件进程_请求进程_响应进程_异常其它
下载中间件
在每一个scrapy工程中都有一个名为中间件。巴拉圭的文件,这个就是中间件文件
其中下载中间件的类为XxxDownloaderMiddleware
其中有这么几个方法
定义流程请求(自身、请求、蜘蛛):
不返回
定义流程_响应(自身、请求、响应、蜘蛛):
返回响应
定义进程_异常(自身、请求、异常、蜘蛛):
及格
process_request
这个方法是用来拦截请求的,我们可以将美国联合航空公司(联合航空公司)伪装写在这个方法中。
美国联合航空公司(联合航空公司)池这个属性需要自己编写
定义流程请求(自身、请求、蜘蛛):
# UA伪装,从美国联合航空公司(联合航空公司)池随机一个
request.headers[用户代理]=随机。选择(自我。用户代理列表)
不返回
process_response
这个方法是用来拦截响应的,我们可以在这里篡改响应数据。
如果我们将硒和scrapy结合就可以请求那些动态加载的数据了。
定义流程_响应(自身、请求、响应、蜘蛛):
# 浏览器对象
兄弟=蜘蛛。兄弟
# 参数蜘蛛;状似蜘蛛的物体;星形轮;十字叉;连接柄;十字头是爬虫对象
# 挑选出指定响应对象进行篡改URL-请求-响应
bro.get(请求。网址)
page_text=bro.page_source #包含了动态加载的数据
# 针对定位到的反应篡改
# 实例化新的响应对象(包含动态加载的数据)
response=html响应(URL=bro。current _ URL,body=page_text,encoding=utf-8 ,request=请求)
返回响应
在爬虫文件中需要预先创建硒的浏览器对象
进口废品
从硒导入网驱动程序
来自硒。网络驱动。chrome。服务导入服务
从selenium.webdriver导入chrome选项
XxxSpider类(斗志昂扬.蜘蛛):
name=xxx
# allowed _ domains=[ www。XXX。com ]
start_urls=[……]
def __init__(self):
Service=Service(/Users/soutsukyou/py charm _ Workspace/网络爬虫/study _ selenium/chrome driver’)
chrome_options=ChromeOptions()
# 规避检测
chrome _ options。add _ experimental _ option(排除开关,[启用-自动化])
# 实例化浏览器
self.bro=webdriver .Chrome(service=service,options=chrome_options)
process_exception
这是用来拦截发生异常的请求对象,一般我们可以在这里写代理知识产权。
两个代理互联网协议(互联网协议的缩写)池属性需要自己编写
定义进程_异常(自身、请求、异常、蜘蛛):
# 可以设置代理互联网协议(互联网协议的缩写)
如有要求。网址。split( : )[0]== http :
请求。meta[ proxy ]= http:// random。选择(自我.PROXY_http)
如有要求。网址。拆分( : )[0]== https :
请求。meta[ proxy ]= https:// random。选择(自我.PROXY_https)
# 重新请求发送
退货请求
其它
我们需要在settings.py中开启下载中间件才能使其生效
#启用或禁用下载器中间件
#请参阅https://份文件。scrapy。org/en/latest/topics/downloader-中间件。超文本标记语言
DOWNLOADER _ MIDDLEWARES={
XXX。中间件。xxxdownloadermiddleware :543,
}
到此这篇关于大蟒爬虫框架scrapy下载中间件的编写方法的文章就介绍到这了,更多相关蟒蛇皮中间件内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。