网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 网站建设 » 正文

java爬虫多线程redis队列(爬取国美网站的商品信息)

2019-6-14 22:36:35 | 作者:老铁SEO | 0个评论 | 人浏览

  前面那篇爬虫文章用的是单线程没有用到其它一些比较提高效率的工具比较遗憾,所以今天做了一个比较全面的爬虫。首先谢谢 @天不生我万古长这位小伙伴的留言,不然还真有点懒了。因为上班所以也只能利用周末的时间来写了。其实这次构思了很久。本来是想爬淘宝的商品信息,但是遇到了一个坑就是ssl的证书验证,这里纠结了半天终于绕过去了。但是由于淘宝的限制比较严,ip直接被限制访问了。我也很无语,如果同样有小伙伴遇到了https请求的证书验证通过不了,建议去看一下这一篇博客,感觉写的不错。这里主要讲的就是通过java代码获取证书文件,然后将证书文件放入到jdk下面,具体我就不细说了。说一说今天的重点。

  httpClient Jsoup 这些都是爬虫最基本的,就不老生常谈了。这里我说一说用的新的技术点,以及新的技术点遇到了哪些坑。

  这里用redis主要的作用就是保存需要解析的url 以及已经解析过的url两个队列。这里我遇到最多的问题,就是用多线程执行的时候出现redis链接重置的问题。网上查了一下也没有一个统一的答案,我也只是根据控制台输出的错误信息感觉可能是在多线程执行的时候,redis创建了多次连接。为什么会创建多次连接就会出现重置的问题。我的猜测就是因为redis本省是不支持windows的,只是微软在打了补丁的情况下才支持。这可能有一点影响。这方面我也没有去深究。我的解决方案就是创建一个redis的单例模式。

  在处理多线程的问题的时候,如果创建一个线程池管理线程。其实这里的效果是非常好的。但是好是好用,坑却特别多,一定要注意对于有些数据进行操作的时候要进行枷锁的操作,为了保证数据的准确性。

  不得不说加入了redis队列和mongodb存储数据 效率简直要起飞了。15s不到就抓了1200条商品信息。因为有了上次的教训不敢抓得太久,所以只抓取了1200条。如果有不怕封的小伙伴可以试试,当然后果是自负。O(∩∩)O,终于弄完了整整一天。下次加入quartz定时任务,这样获取股票,天气,航班什么的都可以获取实时的了。如果有需求的小伙伴可以留言,有时间一定完成。good night!!(*^_^*) 嘻嘻

  Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy框架已经可以完成很大的一部分爬虫工作了。但是如果遇到比较大规模的数据爬取,直接可以...

  “我只愿双手合一,醉于你的韵里,且不管,千年之后;水是否还是江南的水,梦是否还是江南的梦” -纳兰性德 这是他写出梦与现实的骨感,也是对于妻子的怀恋,但是对于我们青春尚幼的年纪来说充满向往。 踏过去了是现实,留住的永远是追忆不...

  我上学时的助学贷款,这个月彻底还清了。 我爸妈欠的外债还剩5000元,年底也可以轻松的还给我二姐了。 我银行里大概有10万元的存款了。 我这年,为了钱操过不少的心,流过不少的泪,扼杀过不少的冲动。 我现在有存款了,而且是10万,我对这些钱的购买力没什么概...

  天气晴 星期日 下午了,每周日这个时间,是我和女儿一起复习的时间,今天我们复习了英语,女儿还在认真的学习音乐知识,给她的小弟弟唱了几支歌曲,感觉女儿唱的好认真啊!姐弟两个玩的好开心呀! 对了差点忘了,该表扬一下这个小女孩了,把家里里外外收拾了一下,看到家里变了...

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:多线程爬虫  
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。