多线程网络爬虫
来源:互联网 发布:工程设计优化方法手段 编辑:程序博客网 时间:2024/05/05 01:15
最近用C在linux环境下搞了一个多线程网络爬虫,真是历经坎坷啊。现在把自己的教训总结一下:
- 尽量不要使用静态数组,如 char path[200] 之类的。不要以为网址的path“应该”不长。有些网页在302重定向时,会提供一个特别长的path。这可能是由编程人员的疏忽导致。不管怎么样,如果path溢出,那定义在path之后的变量就全部被损坏了,从而导致不可预知的错误。
- 检查calloc等函数返回的指针。不要以为内存总是够用。要养成良好的习惯。在爬取数百万的网页时,内存很可能耗尽。
- 养成良好的编程习惯。比如程序中有很多文件操作符、内存块需要释放。同时还有很多异常需要处理。在处理异常时会发生很多跳转,而跳转之前一定要把该释放的资源释放掉。我开始就是没注意这些东西,结果代码看起来一团糟~~ 对于这些资源,最好统一到一个函数中进行处理。
- 学习gdb的调试功能,通过gdb给出的提示,在相应代码处加入printf,结合__LINE__,__FILE__, __FUNC__等宏进行调试。
- 多线程网络爬虫
- 蜘蛛网络爬虫多线程
- 轻量级多线程网络爬虫
- 【多线程】网络爬虫源码
- crawler4j:轻量级多线程网络爬虫
- 百度百科多线程网络爬虫
- 网络爬虫中的那些多线程设计模式
- JAVA多线程网络爬虫的代码实现
- 网络爬虫中的那些多线程设计模式
- python 网页爬虫+保存图片+多线程+网络代理
- python 网络爬虫(三) 多线程,gzip加速,网页下载
- python 网页爬虫+保存图片+多线程+网络代理
- 基于Boost::Thread库的多线程网络爬虫程序
- python多线程多队列(BeautifulSoup网络爬虫)
- 网络爬虫:使用多线程爬取网页链接
- python网络爬虫入门(三)———多线程
- 网络爬虫开发技术——数据存储以及多线程
- Java多线程网络爬虫(时光网为例)
- AWR快照的深入分析和方法
- ClassLoader 类加载器
- 自己修改的lucene的jjt文件
- VMware上安装RH4AS+Oracle10g RAC+ASM
- thunderbird设置方法
- 多线程网络爬虫
- 首届华中区程序设计邀请赛暨第十届武汉大学程序设计大赛网络预赛A题(HDOJ-4215)
- linux mlockall mlock munlock munlockall
- MySQL Getting Started
- Vmware上安装Solaris10+Oracle10gRAC+ASM
- [置顶] Android 【真机】与【模拟器】触摸屏事件的模拟差异分析
- AIX 6.1安装 Oracle11g
- 黑马程序员 HTML总结(一)
- poj 1376 Robot