ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-10-19 09:31:20  阅读:182  来源: 互联网

标签: process 中间件 Request spider Spider Response


1.控制台输入,以逗号分隔
输入2个数字,自动生成2维数组
2维数组的行是第一个数字
列是第二个数字

测试物理网路的ping 命令

-t :不断使用Ping命令发送回响请求信息到目的地。要中断并退出Ping,只需按下Ctrl+C组合键。
-a:指定对目的地IP地址进行反向名称解析,如解析成功,Ping将显示相应的主机名。
-n Count:指定发送回响请求消息的次数,默认值为4.
-l Size:指定发送的回响请求消息中"数据“字段的长度(以字节表示),默认为32字节,最大值是65527.

查看网络连接的netstat命令

-a显示所有活动的TCP连接以及计算机侦听的TCP和UDP端口
-e显示以太网统计信息,如发送和接收的字节数、数据包数
-n显示活动的TCP连接,但只以数字形式表现地址和端口号,却不尝试确定名称
-o显示活动的TCP连接并包括每个连接的进程IP(PID)。课结合-a,-e,-n一起使用
-p protocol:显示所指定的协议。可以是TCP,UDP、TCPV6、UDPV6。
-s:按协议显示统计信息。
-r显示IP路由表的内容

工作组和域的net命令

net view:显示域列表、计算机列表或指定计算机的共享资源列表。
net user:添加或更改用户账号或显示用户账号信息,该命令也可写成net users
net use:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息,
net start:启动服务或显示已启动服务的列表
net stop:后需加指定服务名,停止相应的服务
net share:创建、删除或显示共享资源

Telnet命令

格式:telent + 空格 + IP地址/主机名称
作用:允许用户登录进入远程主机系统

FTP命令

-v:显示远程服务器的所有响应信息
-n:限制FTP的自动登录
-d:使用调试方法
-g:取消全局文件名

ARP协议

ARP的作用是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信能够顺利进行。
查看ARP缓存表
arp-a
删除APRP缓存表
arp-d

ICMP协议

ICMP协议是TCP/IP协议簇中的子协议,主要用于查询报文和差错报文。
功能:
1.发现网络错误
2.通过网络拥塞
3.协助解决故障
4.通知超时
找一下MySQL做数据库保存scrapy数据的案例

Scrapy框架有两个主要的对象Reques与Response,他们贯穿在爬虫的始终,最终爬虫通过他们将数据串联起来。


Request对象是在Spider中生成,包含HTTP请求信息,在框架中经过一系列传递、处理,最终达到Downloader下载器,下载器执行Request中的请求进行数据抓取,将生成的响应包装成一个Response对象,在经过传送处理,最终返回到发送Request的Spider中。

爬虫Spider中间件是用来处理Response响应的,而Downloader中间件是用来处理Request请求的。

激活中间件:启用Spider中间件时,需要将其加入SPIDER_MIDDLEWARES设置中。该设置位于settings.py文件中,是字典类型对的,其中键为中间件的路径,值为中间件的顺序。
启用中间件的有序列表:
第一个中间件是最靠近引擎的,最后一个中间件是最靠近Spider的。
一般自定义中间件在500-700之间最为妥当。
如果要禁用中间件,可以将中间件的值赋为None,键还是中间件的路径,修改的是中间件的顺序。

编写Spider中间件

中间件与管道类似,每个中间件组件都实现了以下一个或多个方法的Python类。
1.process_spider_input(response,spider)
说明:
当参数response通过参数spider中间件时,该方法被调用,处理该rsponse,即在下载器中间件处理完成后,马上要进入某个回调函数parse_xx()前被调用。
参数:
response(Response对象):被处理的Response
spider(Spider对象):该Response对应的Spider
返回值:
该方法返回一个None或者抛出一个异常。如果其返回None,Scrapy江会继续处理该Response,调用所有其他的中间件直到Spider处理该Response。如果其抛出一个异常,Scrapy将不会调用其他中间件的process_spider_input()方法,而是调用Request的errback。errback的输出将会从另一个方向被重新输入中间件链中,使用process_spider_output()方法来处理,当期抛出异常时调用procrss_spider_execption().

process_spider_output(response,result,spider)

当Spider处理完毕Response返回result时,即在爬虫运行yield item或者yield scrapy.Request()的时候调用该方法

这些因该都是内置的中间件方法

,好像不是,是要自己模仿这样写

process_spider_exception(response,exception,spider)

说明:当spider或其他spider中间件的process_spider_input()抛出异常时,该方法被调用。
参数:
response:异常抛出时处理的Response
exception:抛出异常
spider:抛出异常的Spider
返回值:
该方法必须返回一个None或者一个包含Response或Item对象的可迭代对象(iterable)
如果返回None,Scrapy将继续处理该异常,调用中间件链中的其他中间件的process_spider_exception()方法,直到所有中间件都被调用,该异常到达引擎(异常将被记录并被忽略)
如果其返回一个可迭代对象,那么中间件链的process_spider_output()方法将被调用,其他的中间件的process_spider_exception()将不会被调用。

process_start_request(start_request,spider)

说明:
该方法以Spider启动的Request为参数被调用
参数
start_request(包含Request的可迭代对象):start request列表
spider(Spider对象):启动start request的Spider
返回值:
该方法接收的是一个可迭代对象(start_requests参数),而且必须返回一个包含Request对象的可迭代对象。

Spider内置中间件

Spider已经内置了一些可以辅助爬取的中间件,通过这些中间件的启用、配置可以方便的进行爬虫的优化,提高爬取成功功率与效率。

DepthMiddleware爬取深度中间件

作用:他是一个用于追踪被爬取网站中每个Request的爬取深度的中间件。深度是start_urls中定义URL的相对值,也就是相对URL的深度。
他可用于限制爬取的最大深度,并根据深度控制请求优先级等。

HttpErrorMiddleware失败请求处理中间件

作用:
过滤出所有失败的HTTP Response,爬虫不需要消耗更多的资源,设置更为复杂的逻辑来处理这些异常Request。根据HTTP标准,返回值在200-300的为成功的Response.
如果想处理在这个范围之外的Response,可以通过Spider的handler_httpstatus_list属性或HTTPERROR_ALLOWED_CODES设置来指定Spider能处理的Response返回值。
当然,除非必要且目的明确,否则不推荐处理非200状态码的响应。

OffsiteMiddleware过滤请求中间件

RefererMiddleware参考位置中间件

UrlLengthMiddleware网址长度限制中间件

下载器内置中间件

CookiesMiddleware

作用:
该中间件可以使用Cookie爬取网站数据。记录了向Web Server发送的Cookie,并在之后的Request请求中发送回去,就像操作浏览器一样。
很有用的一点是,每个住址爬虫可以保存多个cookies,只需要为Request.meta指定cookiejar值。

HttpProxyMiddleware

作用:
此中间件可以通过在Request,meta中添加proxy属性值为该请求设置HTTP代理,默认获取代理的方式是通过以下环境变量来获取代理地址:
http_proxy
https_proxy
no_proxy
在settings.py中的设置:
HTTPPROXY_ENABLED:默认为False,表示是否激活HttpProxyMiddleware
HTTPPROXY_AUTH_ENCODING:代理有验证时的账户信息编码方式。

Scrapy基本配置

命令行选项优先级最高

每个爬虫内置配置

custom_setting可以为某些爬虫定制不同的配置,写在spider中,该变量为一个字典

项目设置模块

默认的命令行配置

默认全局配置(优先级最低)

日志

Scrapy使用Python内置的日志系统记录事件日志,在使用日志功能之前还需进行一些配置。

数据收集

Scrapy常用服务

发送邮件

标签:,process,中间件,Request,spider,Spider,Response
来源: https://www.cnblogs.com/wkhzwmr/p/15423400.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有