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

怎么做好网站搜索引擎优化购物网站建设的需求

怎么做好网站搜索引擎优化,购物网站建设的需求,互联网广告,shopping跨境电商平台一、retrying模块简介 在爬虫中#xff0c;因为我们是在线爬取内容#xff0c;所以可能会因为网络、服务器等原因导致报错#xff0c;那么这类错误出现以后#xff0c;我们想要做的肯定是在报错处进行重试操作#xff0c;Python提供了一个很好的模块#xff0c;能够直接帮…一、retrying模块简介 在爬虫中因为我们是在线爬取内容所以可能会因为网络、服务器等原因导致报错那么这类错误出现以后我们想要做的肯定是在报错处进行重试操作Python提供了一个很好的模块能够直接帮助我们实现重试操作它就是retrying模块。当然重试操作不仅仅只用于爬虫还可以用于其他更广泛的领域。 retrying 是一个用Python编写的重试库用于将重试行为添加到常规任务中让你写的代码拥有重试功能。官方文档https://github.com/rholder/retrying 二、案例讲解 我这里有一些网址现在要求编写一个爬虫程序将这些网站访问一遍那么应该如何确保程序能够顺利的执行完成呢有些小伙伴会说使用异常捕获防止程序出现意外这是一种解决办法那么如果我再要求一个网站的请求不能等待过长时间并且针对于有错误的地址进行重试应该如何解决呢这个时候我们就需要引入重试机制。 1无重试机制的爬虫 import requestsdef requests_url(href):URL hrefHeaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36}resp requests.get(urlURL, headersHeaders, timeout3)if resp.status_code 200:print(f{href}访问成功)UrlList [https://www.chinanews.com/scroll-news/news5.html, https://ssr4.scrape.center/,https://www.chinanews.com/scroll-news/news12.html, https://www.chinanews.com/scroll-news/news3.html,https://www.chinanews.com/scroll-news/news8.html, https://www.chinanews.com/scroll-news/news2.html,https://www.chinanews.com/scroll-news/news11.html, https://www.chinanews.com/scroll-news/news1.html,https://www.chinanews.com/scroll-news/news4.html, https://www.chinanews.com/scroll-news/news7.html,https://www.chinanews.com/scroll-news/news10.html, https://www.chinanews.com/scroll-news/news9.html,https://www.chinanews.com/scroll-news/news6.html] for i in UrlList:print(f正在访问:{i})requests_url(i)这段代码在执行时报了Read timed out的异常提示超时那么超时的原因有多种可能是本地网络原因、也可能是网址服务器原因等此时便需要使程序具备能够重试的功能。 2引入了重试机制的爬虫 接下来我们导入安装好的retrying模块只要在需要重试的函数前面添加指定的装饰器即可使程序具备重试功能看以下修改 from retrying import retryretry def requests_url(href):URL hrefHeaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36}resp requests.get(urlURL, headersHeaders, timeout3)if resp.status_code 200:print(f{href}访问成功)3重试机制修订 引入了 retrying 的代码存在一个弊端如果这个网址本身就是联不通的那么它会永远重试下去这并不是我们想看到的所以还要添加一下参数stop_max_attempt_number最大重试次数可以给这个参数指定一个数字比如下面指定的数字5便是让其最多重试5次。 from retrying import retryretry(stop_max_attempt_number5) def requests_url(href):URL hrefHeaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36}resp requests.get(urlURL, headersHeaders, timeout3)if resp.status_code 200:print(f{href}访问成功)但是这样的修改还是不尽人意虽然添加了最大重试次数但非常快速的机械性的连续重试总有一种会随时出发反爬机制的感觉所以还可以设置两次重试之间的等待时间wait_fixed单位是毫秒代码如下 from retrying import retryretry(stop_max_attempt_number5, wait_fixed2000) def requests_url(href):URL hrefHeaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36}resp requests.get(urlURL, headersHeaders, timeout3)if resp.status_code 200:print(f{href}访问成功)不过我还是建议重复性的操作添加点随机性比较好将 wait_fixed 修改为 wait_random_min 和 wait_random_max表示从指定的时间范围内随机一个等待时间。 from retrying import retryretry(stop_max_attempt_number5, wait_random_min1000, wait_random_max2000) def requests_url(href):URL hrefHeaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36}resp requests.get(urlURL, headersHeaders, timeout3)if resp.status_code 200:print(f{href}访问成功)三、最终代码 import requests from retrying import retryretry(stop_max_attempt_number5, wait_random_min1000, wait_random_max2000) def requests_url(href):URL hrefHeaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36}resp requests.get(urlURL, headersHeaders, timeout3)if resp.status_code 200:print(f{href}访问成功)UrlList [https://www.chinanews.com/scroll-news/news5.html, https://ssr4.scrape.center/,https://www.chinanews.com/scroll-news/news12.html, https://www.chinanews.com/scroll-news/news3.html,https://www.chinanews.com/scroll-news/news8.html, https://www.chinanews.com/scroll-news/news2.html,https://www.chinanews.com/scroll-news/news11.html, https://www.chinanews.com/scroll-news/news1.html,https://www.chinanews.com/scroll-news/news4.html, https://www.chinanews.com/scroll-news/news7.html,https://www.chinanews.com/scroll-news/news10.html, https://www.chinanews.com/scroll-news/news9.html,https://www.chinanews.com/scroll-news/news6.html] for i in UrlList:print(f正在访问:{i})try:requests_url(i)except:print(重试结束依旧报错跳过进行下一项任务)四、总结 重试机制仅仅是让爬虫在某一网站访问不通的情况下多尝试几次最终还是会报错所以重试机制依旧需要与异常捕获结合使用。
http://www.hkea.cn/news/14427458/

相关文章:

  • 网站开发api和微端wordpress 小工具原理
  • 绵阳网站建站公司网站的维护
  • 郑州网站建设哪家公司好做网站交接什么时需要交接
  • 精品网的功能和服务网站大图片优化
  • 详情页制作模板seo 服务
  • .net网站开发中注册页面凡科快图官网下载
  • 哪些网站用.ren域名电子商务平台名词解释
  • 网站开发主要职责找回网站后台
  • 网站建设阐述网页和网站区别是什么
  • 怎么做网站的访问量网站开发及维护招聘
  • 吉林省软环境建设网站花房姑娘直播
  • 咸宁网站定制成都旅游必去景点有哪些
  • 淘客做的领券网站php能开发大型网站
  • 网站程序上传工具呼和浩特房地产网站建设
  • 首钢建设二公司网站郑州网站优化公司
  • 如何更快的学习.net网站开发网站建设业务前景
  • 网站建设明细标价表建网站有多少种方式
  • asp.net mvc 5网站开发之美 pdf网站后台内容不更新
  • 海口网站制作计划手机排名
  • 网站婚庆模板网站排名提升易下拉教程
  • 汉中微信网站建设推广中型网站流量
  • 要网站开发费用短信秀堂h5官网
  • 呼和浩特哪里做网站织梦网站模板源码下载
  • 建湖做网站哪家最好建设银行网银盾不能打开网站
  • 头像制作免费重庆网站搜索引擎seo
  • 做简历用什么网站html编辑工具有哪些
  • 网站开发工具cwordpress淘宝客插件开发
  • 网站锚文本使用查询密云区社区建设网站
  • wordpress导入网站国外服务器租用网站
  • 免费网上销售平台吉林seo排名公司