Python vs Node.js 哪个更适合用于爬虫?

2017-02-27 10:05:38 +08:00
 zungmou

Python 的优点是高效,从零到爬半个小时估计就能动起来。

Node.js 更侧重于 io 处理,但其 Javascript 语言特性也能带来高效的开发体验。

两者都有不错的异步性能, Python 3 之后已经原生支持协程, Node.js 更不用说了。

所以这两个用于爬虫,如果都熟练掌握,你会更倾向于哪一个?

11712 次点击
所在节点    Python
39 条回复
mooncakejs
2017-02-27 10:06:57 +08:00
选 js
wellsc
2017-02-27 10:08:14 +08:00
c++
kidlj
2017-02-27 10:08:30 +08:00
node
zjsxwc
2017-02-27 10:13:58 +08:00
额,看你熟练哪种语言呗,我用 php ,毕竟 phpquery 可以像 jquery 一样操作获取到的 html 文本,通过 curl 函数就可以异步或同步的模拟浏览器操作。
sudoz
2017-02-27 10:23:10 +08:00
js 的好处是可以直接在浏览器里跑,想想就带劲
zungmou
2017-02-27 10:23:22 +08:00
@mooncakejs Node.js +1
@wellsc 不嫌麻烦?
@kidlj Node.js +1
@zjsxwc PHP +1
smallpath
2017-02-27 10:24:37 +08:00
node 请使用 v7.6.0 ,直接用 async/await 无痛开写,开了跨域代理还可以直接在 chrome 里跑
TangMonk
2017-02-27 10:29:24 +08:00
node +1, 性能好, 还有 PhantomJS 模拟浏览器
jiangzhuo
2017-02-27 10:30:27 +08:00
要不要试试 neocrawler
v2dead
2017-02-27 10:41:40 +08:00
曾经是 phantomJS 做代理抓取渲染页面, python 在另一端处理任务,对抓到数据进行规整。这算是两个都用么?
simapple
2017-02-27 10:44:37 +08:00
scrapy +1
zungmou
2017-02-27 10:53:48 +08:00
@v2dead PhantomJS 对于大规模爬虫应用的话,性能如何?
viko16
2017-02-27 10:57:56 +08:00
@smallpath #7 求详细,是说 node-inspector 吗?
murmur
2017-02-27 11:00:20 +08:00
现在爬虫的性能早就不是问题 难点在动态数据和反爬虫上

你不是会挂代理么 吼哇 那我们就玩注册吧
DarsyCheuk
2017-02-27 11:00:28 +08:00
哪个熟悉点就用哪个呗
个人偏向 node 毕竟 js 语言摆在那😄
murmur
2017-02-27 11:00:59 +08:00
@zungmou 有人自称组件了 1000+实例的集群 除了每隔一段时间要强制重启释放资源外 没啥
neoblackcap
2017-02-27 11:01:13 +08:00
@zungmou 内存泄漏
neoblackcap
2017-02-27 11:05:38 +08:00
个人感觉大规模的爬虫都不应该使用基于 Chrome 的技术,基于 mozilla 的 spidermonkey 来做的爬虫可能性能会更好,关键是 V8 的引擎并非线程安全,你用到 V8 的时候就需要加锁,要提高并行就是加进程。一台服务器能上多少个进程?
zungmou
2017-02-27 11:07:54 +08:00
@murmur
@neoblackcap

感谢!
fy
2017-02-27 11:12:29 +08:00
都适合。 nodejs 有个额外好处是能直接解释执行页面上部分 js 代码(虽然要考虑安全性)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343417

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX