java jsoup,多线程也方便,python 有哪些 java 爬虫没有的优势?
1
tikazyq 2020-06-28 22:03:04 +08:00
动态语言做爬虫不香?
|
2
lenqu 2020-06-28 22:27:32 +08:00
用的人多,方便实现
|
3
echo1937 2020-06-28 22:29:29 +08:00 via iPhone
因为库多,搞起来方便,尤其是应付反爬这一块。
|
4
xiri 2020-06-28 22:32:17 +08:00
写起来快
|
5
Nich0la5 2020-06-28 22:37:44 +08:00 via Android
开发快,而且爬虫是最不在乎运行效率的
|
6
EminemW 2020-06-28 22:54:16 +08:00
自己写爬虫用 Python 当然是因为写的快。
|
7
em70 2020-06-28 22:55:10 +08:00
目标经常变化,JAVA 花 1 周做个爬虫可能 3 天就不能用了,明显不合理,这方面动态语言优势明显
当然如何是搜索引擎这种通用爬虫,JAVA 比 python 更适合 |
8
catxo 2020-06-28 22:56:16 +08:00
我只知道我接手的一个 java 爬虫,刚启动就吃了 2G 内存,emmmmmm
|
9
movistar 2020-06-28 23:05:53 +08:00
当你的爬虫在几百台机器上都跑满了 CPU,但是 QPS 也没多少,抓的没有别人更新的快的的时候,你就知道为什么要换 Java/Golang/C++跑爬虫了...
CPU 比内存贵多了.大部分机器 CPU:内存都是 1:8 甚至 1:16 以上的.内存空着就是浪费了,超卖了也就 1:4 当然大部分人的爬虫跑不了几台机器,也不是用来吃饭的家伙,当然什么好写用什么,没什么数据量的我也选 Python |
11
limuyan44 2020-06-29 00:05:44 +08:00 via Android
爬虫从来都问题都不在语言上而在反爬上,至于为什么用 Python,纯粹是因为代码行数短或者说大部分人接触爬虫都是从 python 开始的。总而言之,对于普通人来说无非因为简单二字,一般网站几行代码就能爬到需要的数据。你要谈性能,一般人可碰不上。
|
13
musi 2020-06-29 00:45:23 +08:00 1
开发效率快,特别是对于那种经常更换反爬策略的,等你爬虫写完了别人也更新完了反爬策略你还爬个鸡儿
|
14
alexkkaa 2020-06-29 07:09:33 +08:00 via Android 1
crawler 和 spider 是不一样的 像那些全网爬不在乎个别网站是否能爬到的可以用静态语言。但是针对特定网站的 crawler 需要灵活迅速的跟对方打游击战,你用 java 黄花菜都凉了
|
15
LokiSharp 2020-06-29 08:49:28 +08:00 via iPhone
Python 是个人就能写了。。。
|
16
cat9life 2020-06-29 09:18:01 +08:00
Python 最大的优点就是简单好用,上手快,2 天入门几行代码就能跑起来,别跟我谈什么性能,大部分就是玩票的性质。要性能九别用 Python
|
17
passerbytiny 2020-06-29 09:50:31 +08:00 via Android
我是一个 java 开发,我现在轻易不想写代码。一个小功能就要动好几个源文件,还要写相对大量的单元测试代码,就算有 CI 还是感觉累。
看上面的回复,怕虫是超高频变化的,用 java 真不合适。 |
19
cweijan 2020-06-29 10:28:22 +08:00
以前我看 python 爬虫很火就跟着写了个, 但发现维护起来实在头疼, 现在已经用 Java 重写了, 使用 webmagic 开发效率完全不输 python
|
20
wysnylc 2020-06-29 10:49:18 +08:00
@cweijan #19 py 写爬虫纯粹是老手图简单快速新手只会 py,真要想长久发展不可能用动态类型的语言维护成本爆炸
还有吹 py 包多的,java 笑抽 |
21
namelosw 2020-06-29 11:11:23 +08:00
爬虫这种东西需要反复调试,BS4 在 Console 里直接写,可以直接 body.div.h2.a.text,Java 写不难受嘛……
而且爬虫这种一天一改的,Java 搞出来还给对方建模?不建模跟动态类型有什么区别? 聊性能的不知道爬虫主要是 IO ? @wysnylc Py 现在可以加类型了 |
22
wysnylc 2020-06-29 11:16:45 +08:00
@namelosw #21 任何一个要长久发展的项目都需要多人协作和更新维护,就 py 这技术氛围有几个能考虑后面事写的几乎都是"一次性"无法更新无法协作的代码
还是那个老话,py 这类动态语言没有约束开发氛围散漫根本不适合大型项目只能做点胶水工作 |
23
securityCoding 2020-06-29 11:19:17 +08:00
短平快
|
24
XanderChen 2020-06-29 13:04:23 +08:00
一直认为 java 要装 jdk 来着?
是不是要装,要装的话我选 python 。(手动狗头 |
25
Rwing 2020-06-29 13:06:50 +08:00
我用 C# 写爬虫 ┑( ̄Д  ̄)┍
|
26
AlisaDestiny 2020-06-29 13:26:09 +08:00
就凭 Python 可以开个交互式环境,写一点调试一点看下输出,Java 稍微改一点就要重新编译执行太累。
|
27
zh584728 2020-06-29 13:41:37 +08:00
我觉得爬虫就是营销号为了卖课而带火的
|
28
geekeroro 2020-06-29 15:56:46 +08:00
优势就是方便……这么多现成的东西
|
29
chniccs 2020-06-29 16:04:49 +08:00
写起来快,改起来快,调试更快。运行快不快,大部分需求中倒是其次的
|
30
qsbaq 2020-06-29 16:27:00 +08:00
开发快+1
|
31
sidegem 2020-06-29 16:28:57 +08:00
简单
|
32
optional 2020-06-29 16:30:49 +08:00
python 爬虫已经过去了, 现在用 js 写爬虫不香吗
维护,typescript 了解一下。 |
33
optional 2020-06-29 16:31:51 +08:00
@wysnylc 动态类型不好维护? 我觉得 typescript 的维护性比 java 还高,java 经常改个类型改好几个文件(我是 java 开发)。
|
35
wuwukai007 2020-06-29 16:46:51 +08:00
并不是 python 适合爬虫,是快速开发的场景( xxx )适合 python
|
36
silkriver 2020-06-29 16:52:00 +08:00 via Android
经常需要调参数和展示数据的场合,Jupyter Notebook 是神器
|
37
cweijan 2020-06-29 16:54:52 +08:00
@optional 其实是 py 不好维护, 编译没问题, 一运行就各种报错, js 相对来说稳定点, 不过用 js 类库显然是比不过 Java 的.
|
38
murmur 2020-06-29 16:55:32 +08:00
语法简单,其实现在都是用 headless
|
39
optional 2020-06-29 16:57:16 +08:00
@cweijan 就爬虫而言,js 比不过 java ?不存在的。
用 js 写,http request 不说了,html 解析各种 selector,headless chrome api 无缝兼容, 浏览器插件都可以直接写。 |
40
drackzy 2020-06-29 16:58:54 +08:00
python 爬的快,进监狱也快。
|
41
ricardochrist 2020-06-29 17:08:20 +08:00
全名 python 啊现在
|
44
krixaar 2020-06-29 18:04:22 +08:00
有些时候写爬虫不需要那么兴师动众,路边拿铲子刨个坑的事儿不值得旁边选块地界建挖机工厂……
|
45
WilliamYang 2020-06-29 23:41:08 +08:00 via iPhone
@cweijan 其实 webmagic 都好像几年没更新了,不建议用,还不如用 scrapy
|
46
jeeyong 2020-06-29 23:54:19 +08:00
早前 python 做爬虫, 是因为库多, 语法简单吧?
现在你应该问, node 做爬虫香吗? 香...正如 @optional 说的, 加解密的 js, 直接 eval 掉...甚至不知道哪段是负责加解密的? 我直接全执行掉......... |
47
cwxcwx2018 2020-07-02 10:16:03 +08:00
哪里可以学爬虫,苦于没有经验入手。(难道我的搜索关键词有问题)
|
48
chaoschick 103 天前
@airqj Google:虽然 Google 的爬虫(如 Googlebot )具体实现细节是机密的,但有报道称,Google 早期的基础设施中使用了大量 C++ 代码,这可能包括部分爬虫组件。
Bing:类似地,微软的搜索引擎 Bing 也可能在其爬虫和索引系统中使用了 C++,因为微软的许多核心系统都是用 C++ 开发的。 |