1、最初版本,使用多线程爬取,如果网断了就得重新爬。解决方法:另建多线程存储,并做好记录文件。
2、使用htmlparser爬取时,有的网页爬取过慢,无法设置超时连接。可使用java.net下的url,用流的方式获取网页信息,里面有设置超时的方法。可设置守护线程方式判断连接是否超时(未验证)。可使用future方式提交任务给excuteservice(未验证)
3、网页编码不同,无法爬取网页(待解决)
4、界面问题。不要把功能的实现放入界面中,在其下层可写一个控制类,专门实现和界面以及爬取的交互。
5、多线程之间的队列同步问题。可以自己写方法,在对队列进行入队和出队的时候加锁。可以用jdk提供的同步队列。
6、对入队和出队进行计数。使用jdk提供的同步队列无法实现此功能,可实现自己的同步队列,在里面设置全局变量进行计数。
7、配置文件问题。分为工程级配置文件和单个爬取网站的配置文件。可使用xml和properties两种方式。xml一般需要写一个对应的bean,也可以使用反射动态生成临时bean。使用properties可直接读取和修改配置文件的值。
8、实现最快爬取和存储至少需要多少个队列。列表队列,新闻队列,已处理列表队列,已处理新闻队列(就是已经放入线程中的)