一般公司做爬虫采集的话常用什么语言 在京东搜点书全是有关java的
其实我不太同意做了DHT爬虫那位的说法。
不同语言自然会有不同用处。离开环境谈哪个好,哪个不好都是耍流氓。
1,如果是自己做着玩的话,定向爬几个页面,效率不是核心要求的话,问题不会大,什么语言都行的,性能差异不会大。当然,如果碰到十分复杂的页面,正则写的很复杂的话,爬虫的可维护性就会下降。
2,如果是做定向爬取,而目标又要解析动态js。
那么这个时候,用普通的请求页面,然后得到内容的方法肯定不行了,就要一个类似firfox,chrome的js引擎来对js代码做动态解析。这个时候推荐casperJS+phantomjs或slimerJS+phantomjs
3,如果是大规模的网站爬取
这个时候就要考虑到,效率,扩展性,可维护性,等等了。
大规模的爬取涉及的方面很多,比如分布式爬取,判重机制,任务调度。这些问题深入下去哪一个简单了?
语言选取这个时候很重要。
NodeJs:做爬虫效率很高。高并发,多线程编程变成了简单的遍历和callback,内存cpu占用小,要处理好callback。
PHP:各种框架到处有,随便拉个来用都行。但是,PHP的效率真的有问题…不多说
Python:我用python写的比较多,对各种问题都有比较好的支持。scrapy框架很好用,优点多。
我觉得js也不是很适合写…效率问题。没写过,估计会有麻烦一堆。
据我知道的,大公司也有用c++的,总之大多数都是在开源框架上改造。真重新造个轮子的不多吧。
不值。
随手凭印象写的,欢迎指正。
nodejs +1
不,我錯了。
高性能爬蟲並不像服務器那樣適合併發,而爲了效率(減少重複)更適合並行而非併發。
好吧我又錯了。
併發並行對爬蟲而言幾乎一樣~
不,不一樣。
算了,nodejs +1。
语言不是问题,具体业务看模块,要有一个好用的http库 一个好用的并发库 一个好用的作业调度库 一个好用的标记语言解析库,这些都具备了 再说语言有不错的性能 有比较优美的语法 最后还要看公司大部分人是不是能够接受这门语言,从宽泛的角度来看,python java ruby nodejs c#,都具备这些条件,至于如何取舍 就看后面的几个条件了
做了台湾台铁0点抢票,刚开始也是PHP做的,后来发现每天0点有好多票要抢,的做成并发的同时执行的,我就用nodejs调用php ,解决了并发问题,虽然简陋,但能用。。。以前20张票需要5分钟那样完成,现在20张票也就30多秒。。。
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
可以试试 jsoup 这个工具,使用 java 开发的。