Python vs Node.js 哪个更适合用于爬虫?
Python 的优点是高效,从零到爬半个小时估计就能动起来。
Node.js 更侧重于 io 处理,但其 Javascript 语言特性也能带来高效的开发体验。
两者都有不错的异步性能, Python 3 之后已经原生支持协程, Node.js 更不用说了。
所以这两个用于爬虫,如果都熟练掌握,你会更倾向于哪一个?
Python vs Node.js 哪个更适合用于爬虫?
选 js
对于爬虫来说,Python通常是更直接、更主流的选择。
核心原因在于生态。Python有Scrapy这种工业级的异步框架,以及Requests、BeautifulSoup、lxml、Selenium、Playwright等一系列成熟、专用的库,几乎覆盖了从简单请求到复杂动态渲染的所有爬虫场景。写爬虫就像用现成的乐高积木搭房子,又快又稳。
Node.js(特别是用Puppeteer或Playwright)在处理需要执行JavaScript的动态网页时非常强大,其天生的异步IO模型在高并发I/O密集型任务中也有优势。但对于大多数爬虫项目——尤其是数据抓取、解析、清洗的完整流程——Python的库更丰富、社区解决方案更多、学习曲线也更平缓。
简单说:Python是爬虫的“标准答案”,Node.js是特定场景(尤其是高并发或重度依赖JS渲染)下的“优势选项”。
总结:常规爬虫选Python,重度动态渲染或高并发场景可考虑Node.js。
c++
node
额,看你熟练哪种语言呗,我用 php ,毕竟 phpquery 可以像 jquery 一样操作获取到的 html 文本,通过 curl 函数就可以异步或同步的模拟浏览器操作。
js 的好处是可以直接在浏览器里跑,想想就带劲
Node.js +1
不嫌麻烦?
Node.js +1
PHP +1
node 请使用 v7.6.0 ,直接用 async/await 无痛开写,开了跨域代理还可以直接在 chrome 里跑
node +1, 性能好, 还有 PhantomJS 模拟浏览器
要不要试试 neocrawler
scrapy +1
PhantomJS 对于大规模爬虫应用的话,性能如何?
#7 求详细,是说 node-inspector 吗?
现在爬虫的性能早就不是问题 难点在动态数据和反爬虫上
你不是会挂代理么 吼哇 那我们就玩注册吧
哪个熟悉点就用哪个呗
个人偏向 node 毕竟 js 语言摆在那😄
有人自称组件了 1000+实例的集群 除了每隔一段时间要强制重启释放资源外 没啥
内存泄漏
个人感觉大规模的爬虫都不应该使用基于 Chrome 的技术,基于 mozilla 的 spidermonkey 来做的爬虫可能性能会更好,关键是 V8 的引擎并非线程安全,你用到 V8 的时候就需要加锁,要提高并行就是加进程。一台服务器能上多少个进程?
感谢!
都适合。 nodejs 有个额外好处是能直接解释执行页面上部分 js 代码(虽然要考虑安全性)。
你可以一直加服务嘛,性能不够机器来凑。不过确实是要隔一段时间重启 phantomJS ,不知道是不是内存泄露,隔一段时间内存跑的高的不行。我当时是做进程池,每个 phantomJS 能跑十几次任务就直接让它重启了。
线程和进程有区别么,难道用线程渲染页面的 cpu 负载就能下来?
node 一个巨大的优势在于如果你要爬的页面用 js 搞了个前端加密,虽然没有什么用但是 python 就很难处理
Python
你开进程需要内存的啊,线程可是共享内存啊。
node 不是有 vm 么
作为平台无关的动态语言,大家都有 vm 吧……
我都是直接在浏览器里爬的
scrapy +
怎么没人说 pyspider
老铁 666
生物脑智能技术肉眼爬虫表示压力不大
我觉得都可以啊…Python 也有执行 JS 的包 之前用的是这个 https://github.com/doloopwhile/PyExecJS 但是国内更多的云平台都可以免费运行 Node 再加上[Cheerio]( https://github.com/cheeriojs/cheerio)这种包 也是很爽的
进来学习
python requests 不解释
给 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/


