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

php网站链接数据库建设网站的实验目的和意义

php网站链接数据库,建设网站的实验目的和意义,wordpress comment_form();,网络营销的特点主要包括什么爬虫中间件的用法与下载器中间件非常相似,只是它们的作用对象不同。下载器中间件的作用对象是请求request和返回response;爬虫中间键的作用对象是爬虫,更具体地来说,就是写在spiders文件夹下面的各个文件。它们的关系,…

        爬虫中间件的用法与下载器中间件非常相似,只是它们的作用对象不同。下载器中间件的作用对象是请求request和返回response;爬虫中间键的作用对象是爬虫,更具体地来说,就是写在spiders文件夹下面的各个文件。它们的关系,在Scrapy的数据流图上可以很好地区分开来,如图所示。

        其中,4、5表示下载器中间件,6、7表示爬虫中间件。爬虫中间件会在以下几种情况被调用。
        当运行到yield scrapy.Request()或者yield item的时候,爬虫中间件的process_spider_output()方法被调用。
        当爬虫本身的代码出现了Exception的时候,爬虫中间件的process_spider_exception()方法被调用。
        当爬虫里面的某一个回调函数parse_xxx()被调用之前,爬虫中间件的process_spider_input()方法被调用。
        当运行到start_requests()的时候,爬虫中间件的process_start_requests()方法被调用。

1. 在中间件处理爬虫本身的异常


        在爬虫中间件里面可以处理爬虫本身的异常。

        由于网站返回的只是一段普通的字符串,并不是JSON格式的字符串,因此使用JSON去解析,就一定会导致报错。这种报错和下载器中间件里面遇到的报错不一样。下载器中间件里面的报错一般是由于外部原因引起的,和代码层面无关。而现在的这种报错是由于代码本身的问题导致的,是代码写得不够周全引起的。
        为了解决这个问题,除了仔细检查代码、考虑各种情况外,还可以通过开发爬虫中间件来跳过或者处理这种报错。在middlewares.py中编写一个类:

        这个类仅仅起到记录Log的作用。在使用JSON解析网站返回内容出错的时候,将网站返回的内容打印出来。
        process_spider_exception()这个方法,它可以返回None,也可以运行yield item语句或者像爬虫的代码一样,使用yield scrapy.Request()发起新的请求。如果运行了yield item或者yieldscrapy.Request(),程序就会绕过爬虫里面原有的代码。
例如,对于有异常的请求,不需要进行重试,但是需要记录是哪一个请求出现了异常,此时就可以在爬虫中间件里面检测异常,然后生成一个只包含标记的item。

        爬虫里面如果发现了参数错误,就使用raise这个关键字人工抛出一个自定义的异常。在实际爬虫开发中,读者也可以在某些地方故意不使用try ... except捕获异常,而是让异常直接抛出。例如XPath匹配处理的结果,直接读里面的值,不用先判断列表是否为空。这样如果列表为空,就会被抛出一个IndexError,于是就能让爬虫的流程进入到爬虫中间件的process_spider_exception()中。
        在items.py里面创建了一个ErrorItem来记录哪一页出现了问题,如图:

        接下来,在爬虫中间件中将出错的页面和当前时间存放到ErrorItem里面,并提交给pipeline,保存到MongoDB中,如图所示。

        这样就实现了记录错误页数的功能,方便在后面对错误原因进行分析。由于这里会把item提交给pipeline,所以不要忘记在settings.py里面打开pipeline,并配置好MongoDB。储存错误页数到MongoDB的代码如图:

2. 激活爬虫中间件

        爬虫中间件的激活方式与下载器中间件非常相似,在settings.py中,在下载器中间件配置项的上面就是爬虫中间件的配置项,它默认也是被注释了的,解除注释,并把自定义的爬虫中间件添加进去即可,如图所示。

        Scrapy也有几个自带的爬虫中间件,它们的名字和顺序如图:

        下载器中间件的数字越小越接近Scrapy引擎,数字越大越接近爬虫。如果不能确定自己的自定义中间件应该靠近哪个方向,那么就在500~700之间选择最为妥当。

3. 爬虫中间件输入/输出


        在爬虫中间件里面还有两个不太常用的方法,分别为process_spider_input(response, spider)和process_spider_output(response, result, spider)。其中,process_spider_input(response, spider)在下载器中间件处理完成后,马上要进入某个回调函数parse_xxx()前调用。
        process_spider_output(response, result, output)是在爬虫运行yield item或者yield scrapy.Request()的时候调用。在这个方法处理完成以后,数据如果是item,就会被交给pipeline;如果是请求,就会被交给调度器,然后下载器中间件才会开始运行。所以在这个方法里面可以进一步对item或者请求做一些修改。这个方法的参数result就是爬虫爬出来的item或者scrapy.Request()。由于yield得到的是一个生成器,生成器是可以迭代的,所以result也是可以迭代的,可以使用for循环来把它展开。

        或者对请求进行监控和修改:

 --------------------------------------

没有自由的秩序和没有秩序的自由,同样具有破坏性。


文章转载自:

http://yW1prDKY.xdpjf.cn
http://pnYM3vQH.xdpjf.cn
http://is4QnySg.xdpjf.cn
http://v0L5LG6C.xdpjf.cn
http://1wBBizM1.xdpjf.cn
http://Hd98SAxc.xdpjf.cn
http://MnFKnlH5.xdpjf.cn
http://kqyaali0.xdpjf.cn
http://Ps4oN9Bg.xdpjf.cn
http://HXSvhLll.xdpjf.cn
http://5lEn4Gik.xdpjf.cn
http://dQiSAocD.xdpjf.cn
http://x9CzYcDA.xdpjf.cn
http://zqkF27UR.xdpjf.cn
http://JJiQikFA.xdpjf.cn
http://8FJHWDDz.xdpjf.cn
http://6YE7qE5O.xdpjf.cn
http://EpnbaoUF.xdpjf.cn
http://EPVJI8K4.xdpjf.cn
http://CvSQyByR.xdpjf.cn
http://eGPPpjwG.xdpjf.cn
http://X7uIZz6C.xdpjf.cn
http://loSFdG7c.xdpjf.cn
http://FekfXLcp.xdpjf.cn
http://RO3cPy4R.xdpjf.cn
http://3jEmm5pa.xdpjf.cn
http://NbygasRQ.xdpjf.cn
http://5rs4iWqW.xdpjf.cn
http://SxAmCuqK.xdpjf.cn
http://BmUknFy0.xdpjf.cn
http://www.dtcms.com/wzjs/754067.html

相关文章:

  • 海林建设局网站有的网站没设关键词
  • 网站是怎么优化的制作网站注意哪些问题
  • 学网站建设多久能学会做网站卖电脑
  • 小网站关键词沈阳男科医院去哪里
  • 建站公司费用情况郑州app开发哪家好
  • 网站开发和游戏开发的区别公司简介链接怎么制作
  • 有服务器域名源码怎么做网站平台怀来网站seo
  • 网站建设与管理实务wordpress 百家主题
  • 做网站多少钱西宁君博领先引流推广平台违法吗
  • 怎么查看网站备案信息网站关键词排名优化软件
  • 网站推广活动方案优化网站关键词优化
  • 湘潭网站建设 x磐石网络网络构建
  • 百度快照优化网站特价网站建设价格低
  • 阿里云备案网站建设方案书范文产品型网站案例
  • 广州网站制作服务东莞做网站设计制作
  • 七星网络网站前端微信小程序开发
  • 公司建站文案给网站公司看的dede网站转移
  • 电脑系统下载官方网站网站建设与管理是干嘛的
  • 网站建设案例基本流程图有限公司和公司的区别
  • 网站建设方案书 腾讯广告设计公司深圳品牌设计公司
  • 网站建设未验收会计账务处理肇庆百度快照优化
  • 什么网站可以找免费模板python是做什么的
  • 电商网站建设行业现状wordpress设置文章登录可见
  • 建设银行网站电脑上不去网站建设dns解析设置
  • 广州制作公司网站广州网站排名专业乐云seo
  • tp做网站网站制作时如何分析竞争对手
  • 种植类网站模板网站制作优势
  • 衡水企业网站制作报价wordpress和dede区别
  • 福田附近网站建设wordpress关闭站点
  • 百度网站首页入口大同工程建设信息网