Python 的优点是高效,从零到爬半个小时估计就能动起来。
Node.js 更侧重于 io 处理,但其 Javascript 语言特性也能带来高效的开发体验。
两者都有不错的异步性能, Python 3 之后已经原生支持协程, Node.js 更不用说了。
所以这两个用于爬虫,如果都熟练掌握,你会更倾向于哪一个?
1
mooncakejs 2017-02-27 10:06:57 +08:00
选 js
|
2
wellsc 2017-02-27 10:08:14 +08:00
c++
|
3
kidlj 2017-02-27 10:08:30 +08:00 via iPhone
node
|
4
zjsxwc 2017-02-27 10:13:58 +08:00
额,看你熟练哪种语言呗,我用 php ,毕竟 phpquery 可以像 jquery 一样操作获取到的 html 文本,通过 curl 函数就可以异步或同步的模拟浏览器操作。
|
5
sudoz 2017-02-27 10:23:10 +08:00
js 的好处是可以直接在浏览器里跑,想想就带劲
|
6
zungmou OP |
7
smallpath 2017-02-27 10:24:37 +08:00
node 请使用 v7.6.0 ,直接用 async/await 无痛开写,开了跨域代理还可以直接在 chrome 里跑
|
8
TangMonk 2017-02-27 10:29:24 +08:00
node +1, 性能好, 还有 PhantomJS 模拟浏览器
|
9
jiangzhuo 2017-02-27 10:30:27 +08:00
要不要试试 neocrawler
|
10
v2dead 2017-02-27 10:41:40 +08:00
曾经是 phantomJS 做代理抓取渲染页面, python 在另一端处理任务,对抓到数据进行规整。这算是两个都用么?
|
11
simapple 2017-02-27 10:44:37 +08:00
scrapy +1
|
14
murmur 2017-02-27 11:00:20 +08:00
现在爬虫的性能早就不是问题 难点在动态数据和反爬虫上
你不是会挂代理么 吼哇 那我们就玩注册吧 |
15
DarsyCheuk 2017-02-27 11:00:28 +08:00
哪个熟悉点就用哪个呗
个人偏向 node 毕竟 js 语言摆在那😄 |
17
neoblackcap 2017-02-27 11:01:13 +08:00
@zungmou 内存泄漏
|
18
neoblackcap 2017-02-27 11:05:38 +08:00 1
个人感觉大规模的爬虫都不应该使用基于 Chrome 的技术,基于 mozilla 的 spidermonkey 来做的爬虫可能性能会更好,关键是 V8 的引擎并非线程安全,你用到 V8 的时候就需要加锁,要提高并行就是加进程。一台服务器能上多少个进程?
|
19
zungmou OP |
20
fy 2017-02-27 11:12:29 +08:00
都适合。 nodejs 有个额外好处是能直接解释执行页面上部分 js 代码(虽然要考虑安全性)。
|
21
maxmilia 2017-02-27 11:14:36 +08:00
PHP
|
22
v2dead 2017-02-27 11:14:38 +08:00
@zungmou 你可以一直加服务嘛,性能不够机器来凑。不过确实是要隔一段时间重启 phantomJS ,不知道是不是内存泄露,隔一段时间内存跑的高的不行。我当时是做进程池,每个 phantomJS 能跑十几次任务就直接让它重启了。
|
23
murmur 2017-02-27 11:29:16 +08:00
@neoblackcap 线程和进程有区别么,难道用线程渲染页面的 cpu 负载就能下来?
|
24
XIVN1987 2017-02-27 11:33:17 +08:00 via Android
如果只是爬虫的话,用自己最熟悉的最好
如果还想对爬来的数据进行分析的话,那 Python 更好,有 pandas 这样的神器,还有很多统计、机器学习方面的库 |
25
mazyi 2017-02-27 12:01:45 +08:00 via iPhone
node 一个巨大的优势在于如果你要爬的页面用 js 搞了个前端加密,虽然没有什么用但是 python 就很难处理
|
26
jy01264313 2017-02-27 12:01:58 +08:00
Python
|
27
neoblackcap 2017-02-27 12:06:47 +08:00
@murmur 你开进程需要内存的啊,线程可是共享内存啊。
|
30
xieranmaya 2017-02-27 12:22:53 +08:00
我都是直接在浏览器里爬的
|
31
freestyle 2017-02-27 12:27:59 +08:00
scrapy +
|
32
jarlyyn 2017-02-27 12:28:54 +08:00
|
33
only0jac 2017-02-27 12:30:48 +08:00 via Android
怎么没人说 pyspider
|
34
akring 2017-02-27 12:37:41 +08:00
@xieranmaya 老铁 666
|
35
fy 2017-02-27 14:16:51 +08:00
@xieranmaya 生物脑智能技术肉眼爬虫表示压力不大
|
36
songjiaxin2008 2017-02-27 14:22:36 +08:00
我觉得都可以啊...Python 也有执行 JS 的包 之前用的是这个 https://github.com/doloopwhile/PyExecJS 但是国内更多的云平台都可以免费运行 Node 再加上[Cheerio]( https://github.com/cheeriojs/cheerio)这种包 也是很爽的
|
37
insomniowl 2017-02-27 20:01:17 +08:00
进来学习
|
38
mingyun 2017-02-27 22:54:13 +08:00
python requests 不解释
|
39
log4geek 2017-03-04 15:37:24 +08:00
给 Python 投一票!
Python 爬虫, 12 天从入门到精通。不信看看这个 http://log4geek.cc/2017/03/%e9%9b%b6%e5%9f%ba%e7%a1%8012%e5%a4%a9%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e7%b2%be%e9%80%9apython%e7%88%ac%e8%99%ab/ |