关于网络爬虫

很早之前就想把一个网站上的图片下载下来,以前用的工具,非常流畅,但是有些图片是链接到别的网站,所以下载不下来,就想到自己开发一个,可惜后来俗事缠身,百忙不的闲,也就忘记了,最近手头不是很忙,就起了这个念头,说到爬虫,一般的想法是把整个网页下载下来,然后用正则把无关的东西去掉,然后用程序判断,获取相关链接,然后逐个下载,大致如此。

然而在写的过程中,发现这样实在是麻烦,要分析页面建构,哪些想要,哪些要判断,很麻烦,在网上查了一下,发现一个神器HtmlAgilityPack,这个工具可以把整个网页获取下来,形成XML架构,只要使用XPATH就可以获取相关的一切内容,如果想获取页面下div为content 下的所有链接,只要 DocumentNode.SelectNodes("// div [@id='content']/a");

就可以了,相当方便。

获的了文件的所有列表,下面就要开发下载了,C#的网络下载,封装的最好是WebClient,好,那就开始吧,下载个百十来张,没有问题,把页面最小化,下载开始吧,过了一会把程序打开一看,这货居然不干活,死掉了。是的,不停的下载,神仙也降不住啊,原谅,加个多线程吧。

好嘛,又开始疯狂的下载了,然而,不一会程序居然自己关掉了,出了什嘛问题,一看,居然是无洗联接到服务器,连接超时,这时暗骂自己粗心,必须的设啊,可是把这货属性翻了个遍,居然没有熟悉的TIMEOUT,百度一下,我靠,居然没有这个属性,哪个昨整啊,这时只有两个选择,要么是换成httprequest,要么是在webclient基础上加上这个属性,ref了WebClient类,看到下载文件

 

 

那就重写你了,OK,另外发现下载超慢,原来webclient默认下载并发是2,改成ServicePointManager.DefaultConnectionLimit = 512;下载突突的

转载于:https://my.oschina.net/u/1020927/blog/172887

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值