在开发桌面软件时常常有下载文件的需求,小文件、少文件可以自己做相应的网络请求,但是当文件的大小或者数量达到一定规模时,自己封装网络请求就不是很划算的事情了,这时我们可以采取调用迅雷或者 IDM、aria2c 之类的专业下载软件来进行下载。迅雷直接调用迅雷安装迅雷后可以再引用的 com 组件中找到名为“ThunderAgent1.0TypeLibrary”的 com 组件,勾选引用之后,把类库属性中的嵌入互操作类
可以通过 http 协议进行 get 请求来获得当前 IP 及归属地信息。ip138Xpath 获取文字信息//centerwhatismyipXpath 获取信息:IP 地址//body/span[1]来源地区//body/span[2]优劣二者网页大小差不多,均为 300+KB。ip138 为国内服务商,对国内 IP 地址可以精确到市级,并且会包含运营商信息,不过信息包含在一个标签中,需要获取之后自行截取。whatism
Internet 上的一些站点常常存在着镜像网站(mirror),即两个网站的内容一样但网页对应的域名不同。这样会导致对同一份网页爬虫重复抓取多次。为了避免这种情况,对于每一份抓取到的网页,它首先需要进入 ContentSeen 模块。该模块会判断网页的内容是否和已下载过的某个网页的内容一致,如果一致,则该网页不会再被送去进行下一步的处理。这样的做法能够显著的降低爬虫需要下载的网页数。至于如果判断两个网页
之前我们已经基于 ARSoft.Tools.Net 简单实现了 DNS 解析模块的功能,但是当性能要求升高时,每一次爬取都要进行 DNS 请求,甚至很有可能一段时间内每次请求的都是相同的地址,频繁的 DNS 请求就会成为性能瓶颈,所以我们要通过缓存机制将 DNS 解析结果缓存下来,降低 DNS 解析操作,提升系统性能。如此,我们基于之前封装的 MemoryCacheHelper 类对 DnsResolver 类进行改造:using
在完成了 DNS 解析模块之后,我意识到了 DNS 缓存机制也很有必要。在 Redis,Memcache,和.Net 自带的 Cache 之间,考虑到部署问题,最终选择了后者,之前在学习 Web 及开发的过程中用过 System.Web.Caching.Cache 这个类库,但是这次的爬虫程序我打算部署为桌面软件,所以选用了 System.Runtime.Caching.MemoryCache(后期如有必要也会加入 Syste
最近在做爬虫的作业,今天学习的内容是关于 DNS 解析模块的制作的。使用的库为 ARSoft.Tools.Net,它是一个非常强大的开源 DNS 控件库,包含.NetSPFvalidation,SenderIDvalidation 以及 DNSClient、DNSServer 接口。使用该接口可轻松实现 DNS 客户请求端及服务器解析端。项目地址:http://arsofttoolsnet.codeplex.com/,