多线程网络爬虫

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值