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