自己造的爬虫的轮子

因为需要爬取数据,所以自己造了个轮子现在把整体框架结构以及要点阐述一下:

1、使用工具

使用了httpclient 4.5进行作为抓取工具而html解析使用JSOUP。

2、整体思路

爬虫的抓取策略要么是用延长时间来躲避追查,要么是用大量的代理IP来躲避追查。由于我的请求数量非常大所以只能用代理IP进行请求。所以首先你需要获得大量的代理池。
代理池的获取方式通过:1 去各大网站爬去免费代理,注意时间爬取限制。他们允许你抓取但是时间要放缓,否则会给你警告的。免费代理IP我用过的网站有西刺代理、快代理。但是要注意免费代理的成功率一般不高。我的感觉能到20%就是烧高香了。据此虽然说他们的付费服务标榜很高我也没买。2:自己扫描IP(看过没实践)。

3、架构设计



由于需要同一时间段爬去大量数据,所以结构如上图。多线程抓取类共享一个代理工具类。通过代理工具类获得代理IP。共享方式为抓取类(Crawler类)采用实现runnable接口实现。将一个ProxyUtil对象传入每个抓取类中即可。对于Httpclient类的使用它是线程安全的。但是因为多继承需要将其放入线程池中。但是httpclient由于需要进行多次更换url 具体参见
如果是连接中保持长连接,有可能出现链接终端等问题,别忘了中断链接(httpget.abort())。同时别忘了如果连接上时间不放需要 http.conn-manager.timeout参数来抛出异常。

4、评分机制

代理IP可以在读取时根据情况给予一个分值录入到数据库中。

代码还在不断优化暂时不放上来了,这如有问题望不吝赐教。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值