• 船舶爬虫出现过的问题


    1、最初版本,使用多线程爬取,如果网断了就得重新爬。解决方法:另建多线程存储,并做好记录文件。
    2、使用htmlparser爬取时,有的网页爬取过慢,无法设置超时连接。可使用java.net下的url,用流的方式获取网页信息,里面有设置超时的方法。可设置守护线程方式判断连接是否超时(未验证)。可使用future方式提交任务给excuteservice(未验证)
    3、网页编码不同,无法爬取网页(待解决)
    4、界面问题。不要把功能的实现放入界面中,在其下层可写一个控制类,专门实现和界面以及爬取的交互。
    5、多线程之间的队列同步问题。可以自己写方法,在对队列进行入队和出队的时候加锁。可以用jdk提供的同步队列。
    6、对入队和出队进行计数。使用jdk提供的同步队列无法实现此功能,可实现自己的同步队列,在里面设置全局变量进行计数。
    7、配置文件问题。分为工程级配置文件和单个爬取网站的配置文件。可使用xml和properties两种方式。xml一般需要写一个对应的bean,也可以使用反射动态生成临时bean。使用properties可直接读取和修改配置文件的值。
    8、实现最快爬取和存储至少需要多少个队列。列表队列,新闻队列,已处理列表队列,已处理新闻队列(就是已经放入线程中的)
  • 相关阅读:
    10 个让人惊讶的 jQuery 插件
    URL编码方法比较
    Java大文件分片上传/多线程上传源码
    Java大文件分片上传/多线程上传代码
    Java大文件分片上传/多线程上传插件
    Java大文件分片上传/多线程上传控件
    python函数
    关于言谈
    Sql语句之select 5种查询
    openstack之网络基础
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369549.html
Copyright © 2020-2023  润新知