zoukankan      html  css  js  c++  java
  • NCrawler老是出问题,头痛……

      需要做一个爬虫,最开始看到网上对larbin评价不错,就想着在它的基础上改改,结果后来发现我这个从来没在linux上做过开发的人,这么一下在上手效率是在太低。

      想找个基于Windows的C或者C++的开源爬虫结果没发现有合适的。于是不得已只能转投C#阵营了,虽然不是很熟,但毕竟是微软的,比起直接转到java还是简单不少。

      千辛万苦找到了NCrawler,发现相对于其他几个比如ArachNode.Net和OpenWebSpiderCS代码量还是要小很多,而且作者一直在开发,感觉不错,于是就决定使用它了。

      因为NCrawler一个爬虫只爬一个域名下的网页,我需要爬很多个网站,于是就利用VS2010对并行计算的支持,对其爬虫进行了并行化,大大的提高了其爬行速度。

      但是长时间跑下来,每天总要出两个错。一开始没有关闭VS2010的IntelliTrace,结果总是定不了错误的位置,直接导致IntelliTrace.exe崩溃。搞不明白怎么回事?为什么不停在出错的代码位置呢?

      后来才发现IntelliTrace之后就可以定位错误了。第一个错误是在“远程主机强制关闭连接时”导致NCrawler用于解析robots文件的RobotRules.dll出错。找到RobotRules的源码加入工程后发现修改很麻烦,于是乎直接把robots文件解析部分给屏蔽了,先稳定了再做。

      跑了一天之后又出问题了,这个我就更看不懂了……

      output.Write(buffer, 0, bytesRead); 这句话竟然报错了,buffer长度为1024,bytesRead大小也是1024,不明白……

       继续除错中!

  • 相关阅读:
    Linux中-POSIX 线程详解
    sql server 2008如何导入mdf,ldf文件
    div浏览器兼容问题
    桥(Bridge)模式
    JSTL核心标签
    filter中的dispatcher解析
    synchronized探究
    最全设计模式(转载)
    面试题总结
    企业为什么要去竞争?
  • 原文地址:https://www.cnblogs.com/phoenixnudt/p/2382197.html
Copyright © 2011-2022 走看看