请问最佳的爬虫语言是什么

2022-09-15 02:27:22 +08:00
 dfgddgf

如果需要多线程(多端口)下载网页,保证下载速度和网页解析速度和开发速度的在合理的范围之内,哪一款语言是最优的。

golang 并发使用最强的,在正则匹配速度,爬虫软件包的丰富程度上和 perl 、python 还有不小差距。

pyhon 的异步下载引擎貌似使用不是特别方便(个人对 pyhon 不熟,勿喷)

php 有 https://github.com/walkor/Workerman 这样的高性能网页服务器框架,有没有易用的爬虫框架?

node.js 异步下载貌似很强大,有没有大型爬虫项目使用 node.js 做爬虫,同时网页解析,文件处理,unicode 转码全部使用这个语言的爬虫案例?

perl 有一个 mojo::useragent 配合 libEV ,并发能力很强大。perl 在文本正则处理、文本编码转换,网页 dom 解析都有成熟的处理方案和软件包,这个是目前作者最喜欢的平台。

c# 据说是最强大爬虫平台,没接触多少。

java 平台性能很强劲,软件包也丰富,笔者知之甚少。

rust 貌似爬虫全套组件都有,而且比较新。貌似可以做出极致压榨硬件性能的方案。

11568 次点击
所在节点    程序员
67 条回复
wangtian2020
2022-09-15 10:14:36 +08:00
最佳的爬虫语言是你最擅长最熟悉的语言
因为我只会 nodejs ,随意就是它了
tzar
2022-09-15 10:16:04 +08:00
无意义的问题
zhuangzhuang1988
2022-09-15 10:19:36 +08:00
熟悉啥语言用啥。
dcsuibian
2022-09-15 10:36:07 +08:00
我觉得是 Node.js ,毕竟 web 本来就是 js 的主战场
1 、对 JSON 的处理好得不得了(毕竟就是来源于 js 的)
2 、方便处理 DOM ,这基本就是前端的工作
3 、异步支持极好(因为 js 的单线程特性,不异步就卡死了)
4 、部分网页的 DOM 其实是 js 生成的,如果你选的就是 js ,那么会比较熟悉
5 、puppeteer 、playwright 这种爬虫杀手锏,都是优先支持 js 的


我是先学的 Python 的 Scrapy ,然后又用了 Node.js 。
我感觉 Node.js 不需要什么爬虫框架,直接 axios 请求下来,然后 cheerio 解析就好了。(最主要是可以复用写前端的经验)

唯有对速度不敢确定,因为我都限制请求频率的,怕踩缝纫机
Dganzh
2022-09-15 10:36:58 +08:00
写 Go 的人喜欢造轮子,是时候造一个大而全的爬虫框架了
wxf666
2022-09-15 10:47:44 +08:00
@dfgddgf 你每秒要爬多少网页啊?

要不你放点要爬的网页出来?可能有热心观众给出自己的爬法,和爬取速度统计
CodeSorcerer
2022-09-15 10:49:56 +08:00
用 PHP 的话 https://github.com/kiddyuchina/Beanbun 这个是基于 Workerman 的爬虫框架
或者使用 swoole 的一些框架也 OK
wxf666
2022-09-15 10:57:36 +08:00
@dfgddgf 毕竟能了解这么多语言生态各自的爬虫方案的网友,可能不多

估计给出同一具体场景,各位网友给出自认为最好的方案,最后才容易对比
placeholder
2022-09-15 11:01:19 +08:00
要做爬虫就先用当前技术栈做呗,性能差能差到哪去,

你给性能整上去了给人网站干崩了,你性能再好有屁用

反正都是偷着爬,最多尊重一下 robots 文件
Aumujun
2022-09-15 11:05:49 +08:00
单站爬虫的速度倒是其次,能取到数据就是最好的结果,慢点都无所谓;也就是用啥都一样,性能要求不会太高(至少没有高到你换语言的程度)
815979670
2022-09-15 11:07:00 +08:00
php 有一个 querylist 用起来还挺方便的 写数组就行了 http://querylist.cc/
777777
2022-09-15 11:19:43 +08:00
golang ,我们现在日均 1500w 网站
herozzm
2022-09-15 11:19:47 +08:00
我觉得是 go ,多线程完美匹配多线程爬虫
Jirajine
2022-09-15 11:31:01 +08:00
爬虫这种经常变化的场景,不宜用静态语言,尤其不宜用 rust 这种类型严格的静态语言。
haolongsun
2022-09-15 12:38:38 +08:00
如果真的有时间来学习的话,就 all in rust 吧,rust 的网络库质量非常的高,库的作者专门研究 http 的.
kkocdko
2022-09-15 13:12:09 +08:00
rsshub ,使用 nodejs 的大型(中型)爬虫项目。
we9ta
2022-09-15 13:16:46 +08:00
必须是易语言,不接受反驳
charmToby
2022-09-15 13:25:37 +08:00
上招聘 APP ,搜索关键字爬虫,绝大部分都是 Python 。
terranboy
2022-09-15 13:50:54 +08:00
一般的随便什么语言都一样, 要爬真正有价值的内容 还得整合浏览器进去 , 想要性能就得堆机器
iwh718
2022-09-15 14:05:13 +08:00
perl

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

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

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

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

© 2021 V2EX