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常用服务

发送邮件

上一篇:scrapy 爬虫学习二[中间件的学习]


下一篇:Understanding and Creating OWIN Middlewares - Part 1