伊谢尔伦2017-04-17 17:50:02
其实我不太同意做了DHT爬虫那位的说法。
不同语言自然会有不同用处。离开环境谈哪个好,哪个不好都是耍流氓。
1,如果是自己做着玩的话,定向爬几个页面,效率不是核心要求的话,问题不会大,什么语言都行的,性能差异不会大。当然,如果碰到十分复杂的页面,正则写的很复杂的话,爬虫的可维护性就会下降。
2,如果是做定向爬取,而目标又要解析动态js。
那么这个时候,用普通的请求页面,然后得到内容的方法肯定不行了,就要一个类似firfox,chrome的js引擎来对js代码做动态解析。这个时候推荐casperJS+phantomjs或slimerJS+phantomjs
3,如果是大规模的网站爬取
这个时候就要考虑到,效率,扩展性,可维护性,等等了。
大规模的爬取涉及的方面很多,比如分布式爬取,判重机制,任务调度。这些问题深入下去哪一个简单了?
语言选取这个时候很重要。
NodeJs:做爬虫效率很高。高并发,多线程编程变成了简单的遍历和callback,内存cpu占用小,要处理好callback。
PHP:各种框架到处有,随便拉个来用都行。但是,PHP的效率真的有问题…不多说
Python:我用python写的比较多,对各种问题都有比较好的支持。scrapy框架很好用,优点多。
我觉得js也不是很适合写…效率问题。没写过,估计会有麻烦一堆。
据我知道的,大公司也有用c++的,总之大多数都是在开源框架上改造。真重新造个轮子的不多吧。
不值。
随手凭印象写的,欢迎指正。
黄舟2017-04-17 17:50:02
nodejs +1
不,我错了。
高性能爬虫并不像服务器那样适合并发,而为了效率(减少重复)更适合并行而非并发。
好吧我又错了。
并发并行对爬虫而言几乎一样~
不,不一样。
算了,nodejs +1。
大家讲道理2017-04-17 17:50:02
用python居多,当然java c++也不少。 python来的快,相对于中小规模很有优势,要是大规模就需要优化或者c来重写部分性能瓶颈的代码。