多线程网络爬虫

来源:互联网 发布:工程设计优化方法手段 编辑:程序博客网 时间:2024/05/05 01:15

最近用C在linux环境下搞了一个多线程网络爬虫,真是历经坎坷啊。现在把自己的教训总结一下:

  1. 尽量不要使用静态数组,如 char path[200] 之类的。不要以为网址的path“应该”不长。有些网页在302重定向时,会提供一个特别长的path。这可能是由编程人员的疏忽导致。不管怎么样,如果path溢出,那定义在path之后的变量就全部被损坏了,从而导致不可预知的错误。
  2. 检查calloc等函数返回的指针。不要以为内存总是够用。要养成良好的习惯。在爬取数百万的网页时,内存很可能耗尽。
  3. 养成良好的编程习惯。比如程序中有很多文件操作符、内存块需要释放。同时还有很多异常需要处理。在处理异常时会发生很多跳转,而跳转之前一定要把该释放的资源释放掉。我开始就是没注意这些东西,结果代码看起来一团糟~~ 对于这些资源,最好统一到一个函数中进行处理。
  4. 学习gdb的调试功能,通过gdb给出的提示,在相应代码处加入printf,结合__LINE__,__FILE__, __FUNC__等宏进行调试。

原创粉丝点击