当前位置: 首页 > news >正文

小团队兼职做网站上海最大的企业

小团队兼职做网站,上海最大的企业,企业展厅设计公司100%正品保障,广东省网站集约化建设方案准我快乐地重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 再去做没流着情泪的伊人 假装再有从前演过的戏份 重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 你纵是未明白仍夜深一人 穿起你那无言毛衣当跟你接近 #x1f3b5; 陈慧娴《傻女》 Scrapy 是… 准我快乐地重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 再去做没流着情泪的伊人 假装再有从前演过的戏份 重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 你纵是未明白仍夜深一人 穿起你那无言毛衣当跟你接近                       陈慧娴《傻女》 Scrapy 是一个功能强大的网页爬虫框架通过中间件middlewares机制允许用户对请求和响应进行自定义处理。下载中间件Downloader Middleware是其中的重要组件之一主要负责在请求发送到目标网站前以及响应到达爬虫前的处理。在下载中间件中process_exception 方法用于处理在下载请求期间发生的异常。本文将详细介绍 process_exception 方法的工作机制和应用示例。 什么是 process_exception 方法 process_exception 方法是下载中间件的一部分当下载请求期间发生异常时会调用该方法。这个方法可以用来处理异常、记录日志、重试请求或执行其他自定义操作。其主要功能包括 异常处理捕获和处理在下载过程中发生的异常。记录日志记录异常信息方便调试和监控。重试请求根据特定条件决定是否重试请求。修改请求在重试之前修改请求参数如代理、头信息等。 如何实现 process_exception 方法 实现 process_exception 方法需要定义一个下载中间件并在其中编写处理逻辑。以下是一个简单的示例展示了如何使用 process_exception 方法处理下载异常。 示例处理下载异常并重试请求 首先在 Scrapy 项目的 middlewares.py 文件中定义一个下载中间件 import logging from scrapy.exceptions import IgnoreRequestclass RetryExceptionMiddleware:def __init__(self):self.logger logging.getLogger(__name__)def process_exception(self, request, exception, spider):# 记录异常信息self.logger.warning(fException {exception} occurred while processing {request.url})# 检查是否达到重试次数限制max_retries 3retries request.meta.get(retry_times, 0) 1if retries max_retries:self.logger.info(fRetrying {request.url} (retry {retries}/{max_retries}))# 增加重试次数request.meta[retry_times] retriesreturn requestelse:self.logger.error(fFailed to retrieve {request.url} after {max_retries} retries)raise IgnoreRequest(fFailed to retrieve {request.url} after {max_retries} retries)配置中间件 在 Scrapy 的 settings.py 文件中启用自定义中间件 # settings.py# 启用自定义中间件 DOWNLOADER_MIDDLEWARES {myproject.middlewares.RetryExceptionMiddleware: 543, }中间件的工作流程 初始化当 Scrapy 启动时RetryExceptionMiddleware 类会被实例化。处理异常每次下载请求期间发生异常时process_exception 方法被调用。中间件会记录异常信息并检查是否达到重试次数限制。如果- 未达到限制则重试请求并增加重试次数否则忽略请求并记录错误日志。 处理其他异常操作 除了重试请求process_exception 方法还可以用于其他操作。例如切换代理 import randomclass SwitchProxyMiddleware:def __init__(self, proxy_list):self.proxy_list proxy_listself.logger logging.getLogger(__name__)classmethoddef from_crawler(cls, crawler):proxy_list crawler.settings.get(PROXY_LIST)return cls(proxy_list)def process_exception(self, request, exception, spider):self.logger.warning(fException {exception} occurred while processing {request.url})# 切换代理proxy random.choice(self.proxy_list)self.logger.info(fSwitching proxy to {proxy})request.meta[proxy] proxy# 重试请求return request结论 process_exception 方法是 Scrapy 下载中间件中一个非常重要的钩子允许开发者在下载请求期间发生异常时对其进行自定义处理。通过使用 process_exception 方法可以实现异常处理、日志记录、重试请求和修改请求等操作从而增强爬虫的稳定性和灵活性。在实际项目中充分利用 process_exception 方法可以使爬虫更加智能和健壮。
http://www.hkea.cn/news/14437250/

相关文章:

  • 网站需要更新的频率wordpress自助
  • 做下载类网站一年赚多少钱做视频网站违法么
  • 关于网站建设的申请书app开发与网站开发有何不同
  • 射阳做网站的公司有什么网站做生鲜配送的
  • 菠菜网站如何做推广网站销售公司
  • 公司微网站怎么建设在线画图网页版
  • 外贸网站域名服务商三合一网站制作公司
  • 重庆做网站电话五八同城找工作
  • 最专业的房地产网站建设idc 公司网站模板
  • 加强住房公积金网站建设网站开发怎么谈
  • 中国平安官方网站心态建设课件网站 筛选功能
  • 做网站需要注册吗企业微信scrm
  • 怎么用自己的网站做网页河北省企业网站建设公司
  • 微琅 网站建设怎么给网站做绿标
  • 容桂佛山做app网站新型塑料建筑模板图片
  • 能源公司网站模板提交网站到谷歌
  • 企业建站系统开源公司内部网站创建
  • 网站被黑应该怎么做wordpress 模板 破解版
  • 长沙做网站湖南微联讯点不错建设网站东莞
  • 好的品牌设计网站有哪些湖南长沙seo
  • 在家做网站维护兼职公众号登录微信公众号登录
  • 淘客宝网站备案号如何弄个性化定制软件
  • 做3d办公家具教程的网站问答网站如何优化
  • 济宁市城市建设局网站网络营销工具优缺点
  • 做本地网站能赚钱么十大装饰公司排名
  • 桂林建设银行招聘网站网站新闻页面无法翻页
  • 威海网站建设公司排名新网站如何做排名
  • 公司电商网站开发合同wordpress 学校
  • 哈尔滨建设网站平台手机网站对企业用户的好处
  • 上海云盾为网站做防护江苏省住建厅官方网