说下我爬虫把

imjl 2008-08-07
生产语言:c#,算法测试:php

第一步:
1:爬取网站,检测字符编码,获取正确信息(用c#在无法获得字符编码信息时,只能取两次,如果有谁知道一次性能取说下)
2:没有做dns cache,强制爬取,所以没解析robots
3:爬到内容,经过很复杂的计算,获得想要的信息。(c#正则时死了N次,现在只能避开,不能解决)
4:输出结构化信息,也就是List<outObj>

第二步:
1:加上多线程,采用了一个c#的线程池
2:将信息输出成文件。一个url对应一个文件
3:爬取的统计报告

第三步:
1:定时解析文件,按照特定计算方式生成结果,更新数据库。
2:解析的统计报告

第一步:部分网站需要cookie支持,会跳转,带框架(frame,iframe),内容不一定取得到,所以要设置超时,内容一定要能正确阅读,所以解析编码很重要。

第二步:文件存储以及计算,用了md5。数据量不大,大概17万,采用三层文件夹(年、月、日)来解决文件夹文件限制。

第三步:观察了下cpu,cpu占用很低,内存释放正常,占用也不高(同时开了两个进程,每个进程25个线程上限),所以背后还能做点统计汇总工作。


我没有解决的: JS的输出信息(要定制,但是我做得是模糊匹配,所以暂时放弃),需要用户登录的不符合我目前的要求,所以也放弃。

收获:学习了c#,之前不会,现在也不会,勉强写了这个。


规模太小,大概就一两台老服务器跑。

Global site tag (gtag.js) - Google Analytics