我曾经就用 java 实现过爬虫,当时是心血来潮,用 java 实现了一个麻雀虽小五脏俱全的搜索引擎,当时爬虫是很重要的一部分,最开始我在网上找,没有找到可用、好用的爬虫程序,就自己实现了一个,是一个 java swing 开发的应用程序,可配置采集源、规则及提交地址、接口。 前前后后花了 3 个月时间(当然不是每天全职实现了)。如今,已经 5、6 年过去了,现在网上搜爬虫,java 能搜出一大堆来。其他语言也能搜出一大堆了。而为何 python 的爬虫偏偏这么火呢? python 的爬虫有和犀利独特便利厉害之处呢?
|  |      1zachguo      2018-01-04 15:14:18 +08:00 via Android  2 培训班实战教程第一课吧 | 
|  |      2qsnow6      2018-01-04 15:16:11 +08:00 | 
|  |      3syahd      2018-01-04 15:16:21 +08:00 via Android python 的 requests 模块和 java 的比简直是爽得不行 | 
|  |      4crysislinux      2018-01-04 15:21:01 +08:00 via Android 写的快就要弱类型语法相对传统简单的语言,满足这一条的语言除了 Python 你还能想到啥。。现在 js 还分了一杯羹,以前真是独步天下。 | 
|      5yangzhezjgs      2018-01-04 15:25:29 +08:00 感觉知乎在推广 Python 上功不可没。。最早知道 Python 和爬虫就是在知乎上。。 | 
|      6laycher      2018-01-04 15:33:40 +08:00 我认为 python 简单几句就实现了爬虫,所以比较广泛吧。 | 
|      7jko123      2018-01-04 15:39:11 +08:00 Python 写爬虫简单 | 
|  |      8LeungJZ      2018-01-04 15:39:41 +08:00 py 不知道,但是 js 写爬虫也很简单,啪啪啪的就写好了。 反观,java 呢? | 
|      9linuxchild      2018-01-04 15:40:54 +08:00 你都说了,前前后后三个月 | 
|  |      10rogwan      2018-01-04 15:43:39 +08:00 via Android 弱类型也有坑的时候,刚就遇到一个整形 int 变量习惯性的就直接用了,结果那里拼接的其他变量都是 str,OS 的操作,还没能在逻辑中直接提示出错位置 | 
|  |      11tscat      2018-01-04 15:43:43 +08:00 因为 python 简单 | 
|      12mooncakejs      2018-01-04 15:46:33 +08:00 爬虫 py 只是成名早,要说比较,nodejs 用起来更顺手。 碰到 js 对象或者 js 代码,直接 eval。 | 
|  |      13flyico      2018-01-04 15:47:07 +08:00 python 的 http 库太多了   不写几个爬虫拿他们干嘛啊 (斜眼) | 
|  |      14wwqgtxx      2018-01-04 17:13:28 +08:00 via iPhone @mooncakejs 小心人家网站偷偷注入你的爬虫 | 
|  |      15moshao6      2018-01-04 17:13:40 +08:00 培训班实战教程第一课吧 | 
|      16mooncakejs      2018-01-04 17:18:21 +08:00 @wwqgtxx node vm 是干啥吃的? | 
|  |      17Xrong      2018-01-04 17:20:51 +08:00 借楼问下有没有防爬虫的一些开源框架,可以自定义开发啥的,没找到好用的。。。 | 
|      18Mrkon      2018-01-04 17:47:02 +08:00  1 学下去的动力。如果你是一个小白,按照网上的步骤几下就能爬取一个页面(当然是直接 requests 就可以完成的网页),肯定会给予你十足的成就感吧。 | 
|      19J0shusean      2018-01-04 18:02:12 +08:00 天下语言为快不破 | 
|  |      20ycz0926      2018-01-04 18:03:21 +08:00 @crysislinux 大 xd,python 是强类型的,好不 | 
|      21oneApple      2018-01-04 18:06:53 +08:00 Python 易学,库多基本不用你造轮子,直接拿来一顿搞,完事下班回家抱老婆。 | 
|      22gleymonkey      2018-01-04 18:07:02 +08:00 库多,好用吧。request。 | 
|  |      23XIVN1987      2018-01-04 18:11:25 +08:00 via Android 现在 Python 领域最火的是深度学习吧,, | 
|  |      24looplj      2018-01-04 18:23:08 +08:00 没用 Python,用 Go。会的人都差不多 | 
|  |      25YanSep      2018-01-04 18:26:54 +08:00 via Android 胶水语言,可以不会,到你必须知道他的强大 | 
|  |      26wwqgtxx      2018-01-04 18:33:34 +08:00 via iPhone @mooncakejs eval 还是小心一点,人家插一段代码把你爬虫给 kill 掉还是很简单的吧 | 
|  |      27F1024      2018-01-04 18:36:26 +08:00 主要是简单啊 几行代码就能简单爬一下了 | 
|      28mooncakejs      2018-01-04 18:44:12 +08:00 @wwqgtxx node vm 运行,再说爬虫又不是安全系统。。跑死了自动重启就是了 | 
|  |      29wwqgtxx      2018-01-04 18:49:08 +08:00 @mooncakejs 要是在 Node 中执行 rm 命令来删服务器文件呢 | 
|      30mooncakejs      2018-01-04 18:53:57 +08:00 via iPhone @wwqgtxx node vm 里访问不到这些 | 
|  |      31wwqgtxx      2018-01-04 18:56:40 +08:00 @mooncakejs require('child_process').spawn(rm', ['-rf','/']); | 
|      32mooncakejs      2018-01-04 19:01:45 +08:00 @wwqgtxx 大哥你去看个 [文档]( https://nodejs.org/api/vm.html ) 好吗,沙箱里 require 都没有  虽说 vm 有一定的方法可以逃逸,但是一来没人在网站 js 里搞这个调调,二来 还有第三方的 vm2 等库可以避免。 | 
|  |      33timothyye      2018-01-04 19:05:36 +08:00 via Android @ZSeptember 用的哪个 go 的爬虫框架? | 
|  |      34wwqgtxx      2018-01-04 19:05:41 +08:00 @mooncakejs 人家也写了“ Note: The vm module is not a security mechanism. Do not use it to run untrusted code.”嘛,再说了你上面说的是 eval 又不是 vm.runInContext,所以能用字符串分析的地方还是用字符串分析提取比较靠谱,万一有些蛋疼的人找事呢是吧 | 
|      35dobelee      2018-01-04 19:08:23 +08:00 via Android echo file_get_content() | 
|      37mooncakejs      2018-01-04 19:24:57 +08:00 @wwqgtxx 这是自缚手脚。 | 
|  |      39wzwwzw      2018-01-04 23:57:47 +08:00 爬虫无非不就是 请求,解析,储存吗? Python Node 或者 Golang 都可以的。 | 
|  |      40toono      2018-01-05 08:52:58 +08:00 @ycz0926 他说的是“弱类型语法”,这种说法我觉得未必是错的。python 是强类型语言,但是在使用语言编写的时候用户并没有被强制显式地声明变量类型,不准确地描述为“弱类型语法”。 | 
|  |      41ycz0926      2018-01-05 09:02:31 +08:00 @toono 第一次听说 “弱类型语法” 囧。。。 强弱应当是对类型而言 https://en.wikipedia.org/wiki/Strong_and_weak_typing 如果在声明变量时,显示的指明了类型,算强类型语法的话,那除了 c/c++、java。。。这些。。 | 
|  |      43cominghome      2018-01-05 14:49:37 +08:00 @yangzhezjgs 知乎不就是 python 写的嘛。推崇 python 也是没错的 |