为什么现在爬虫这么火?且偏偏是 Python 的爬虫这么火? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chinjanry
V2EX    Python

为什么现在爬虫这么火?且偏偏是 Python 的爬虫这么火?

  •  
  •   chinjanry 2018-01-04 15:09:37 +08:00 12951 次点击
    这是一个创建于 2837 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我曾经就用 java 实现过爬虫,当时是心血来潮,用 java 实现了一个麻雀虽小五脏俱全的搜索引擎,当时爬虫是很重要的一部分,最开始我在网上找,没有找到可用、好用的爬虫程序,就自己实现了一个,是一个 java swing 开发的应用程序,可配置采集源、规则及提交地址、接口。 前前后后花了 3 个月时间(当然不是每天全职实现了)。如今,已经 5、6 年过去了,现在网上搜爬虫,java 能搜出一大堆来。其他语言也能搜出一大堆了。而为何 python 的爬虫偏偏这么火呢? python 的爬虫有和犀利独特便利厉害之处呢?

    43 条回复    2018-01-05 14:49:37 +08:00
    zachguo
        1
    zachguo  
       2018-01-04 15:14:18 +08:00 via Android   2
    培训班实战教程第一课吧
    qsnow6
        2
    qsnow6  
       2018-01-04 15:16:11 +08:00
    import requests

    respOnse= requests.get("http://www.baidu.com")
    print(response.text)
    syahd
        3
    syahd  
       2018-01-04 15:16:21 +08:00 via Android
    python 的 requests 模块和 java 的比简直是爽得不行
    crysislinux
        4
    crysislinux  
       2018-01-04 15:21:01 +08:00 via Android
    写的快就要弱类型语法相对传统简单的语言,满足这一条的语言除了 Python 你还能想到啥。。现在 js 还分了一杯羹,以前真是独步天下。
    yangzhezjgs
        5
    yangzhezjgs  
       2018-01-04 15:25:29 +08:00
    感觉知乎在推广 Python 上功不可没。。最早知道 Python 和爬虫就是在知乎上。。
    laycher
        6
    laycher  
       2018-01-04 15:33:40 +08:00
    我认为 python 简单几句就实现了爬虫,所以比较广泛吧。
    jko123
        7
    jko123  
       2018-01-04 15:39:11 +08:00
    Python 写爬虫简单
    LeungJZ
        8
    LeungJZ  
       2018-01-04 15:39:41 +08:00
    py 不知道,但是 js 写爬虫也很简单,啪啪啪的就写好了。
    反观,java 呢?
    linuxchild
        9
    linuxchild  
       2018-01-04 15:40:54 +08:00
    你都说了,前前后后三个月
    rogwan
        10
    rogwan  
       2018-01-04 15:43:39 +08:00 via Android
    弱类型也有坑的时候,刚就遇到一个整形 int 变量习惯性的就直接用了,结果那里拼接的其他变量都是 str,OS 的操作,还没能在逻辑中直接提示出错位置
    tscat
        11
    tscat  
       2018-01-04 15:43:43 +08:00
    因为 python 简单
    mooncakejs
        12
    mooncakejs  
       2018-01-04 15:46:33 +08:00
    爬虫 py 只是成名早,要说比较,nodejs 用起来更顺手。
    碰到 js 对象或者 js 代码,直接 eval。
    flyico
        13
    flyico  
       2018-01-04 15:47:07 +08:00
    python 的 http 库太多了 不写几个爬虫拿他们干嘛啊 (斜眼)
    wwqgtxx
        14
    wwqgtxx  
       2018-01-04 17:13:28 +08:00 via iPhone
    @mooncakejs 小心人家网站偷偷注入你的爬虫
    moshao6
        15
    moshao6  
       2018-01-04 17:13:40 +08:00
    培训班实战教程第一课吧
    mooncakejs
        16
    mooncakejs  
       2018-01-04 17:18:21 +08:00
    @wwqgtxx node vm 是干啥吃的?
    Xrong
        17
    Xrong  
       2018-01-04 17:20:51 +08:00
    借楼问下有没有防爬虫的一些开源框架,可以自定义开发啥的,没找到好用的。。。
    Mrkon
        18
    Mrkon  
       2018-01-04 17:47:02 +08:00   1
    学下去的动力。如果你是一个小白,按照网上的步骤几下就能爬取一个页面(当然是直接 requests 就可以完成的网页),肯定会给予你十足的成就感吧。
    J0shusean
        19
    J0shusean  
       2018-01-04 18:02:12 +08:00
    天下语言为快不破
    ycz0926
        20
    ycz0926  
       2018-01-04 18:03:21 +08:00
    @crysislinux 大 xd,python 是强类型的,好不
    oneApple
        21
    oneApple  
       2018-01-04 18:06:53 +08:00
    Python 易学,库多基本不用你造轮子,直接拿来一顿搞,完事下班回家抱老婆。
    gleymonkey
        22
    gleymonkey  
       2018-01-04 18:07:02 +08:00
    库多,好用吧。request。
    XIVN1987
        23
    XIVN1987  
       2018-01-04 18:11:25 +08:00 via Android
    现在 Python 领域最火的是深度学习吧,,
    looplj
        24
    looplj  
       2018-01-04 18:23:08 +08:00
    没用 Python,用 Go。会的人都差不多
    YanSep
        25
    YanSep  
       2018-01-04 18:26:54 +08:00 via Android
    胶水语言,可以不会,到你必须知道他的强大
    wwqgtxx
        26
    wwqgtxx  
       2018-01-04 18:33:34 +08:00 via iPhone
    @mooncakejs eval 还是小心一点,人家插一段代码把你爬虫给 kill 掉还是很简单的吧
    F1024
        27
    F1024  
       2018-01-04 18:36:26 +08:00
    主要是简单啊 几行代码就能简单爬一下了
    mooncakejs
        28
    mooncakejs  
       2018-01-04 18:44:12 +08:00
    @wwqgtxx node vm 运行,再说爬虫又不是安全系统。。跑死了自动重启就是了
    wwqgtxx
        29
    wwqgtxx  
       2018-01-04 18:49:08 +08:00
    @mooncakejs 要是在 Node 中执行 rm 命令来删服务器文件呢
    mooncakejs
        30
    mooncakejs  
       2018-01-04 18:53:57 +08:00 via iPhone
    @wwqgtxx node vm 里访问不到这些
    wwqgtxx
        31
    wwqgtxx  
       2018-01-04 18:56:40 +08:00
    @mooncakejs require('child_process').spawn(rm', ['-rf','/']);
    mooncakejs
        32
    mooncakejs  
       2018-01-04 19:01:45 +08:00
    @wwqgtxx 大哥你去看个 [文档]( https://nodejs.org/api/vm.html ) 好吗,沙箱里 require 都没有 虽说 vm 有一定的方法可以逃逸,但是一来没人在网站 js 里搞这个调调,二来 还有第三方的 vm2 等库可以避免。
    timothyye
        33
    timothyye  
       2018-01-04 19:05:36 +08:00 via Android
    @ZSeptember 用的哪个 go 的爬虫框架?
    wwqgtxx
        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,所以能用字符串分析的地方还是用字符串分析提取比较靠谱,万一有些蛋疼的人找事呢是吧
    dobelee
        35
    dobelee  
       2018-01-04 19:08:23 +08:00 via Android
    echo file_get_content()
    Mavious
        36
    Mavious  
       2018-01-04 19:11:15 +08:00 via iPhone
    @Mrkon 十分赞同。我是一点基础也无的人。随便一搜就一大堆 py 教程,太方便了。
    mooncakejs
        37
    mooncakejs  
       2018-01-04 19:24:57 +08:00
    @wwqgtxx 这是自缚手脚。
    looplj
        38
    looplj  
       2018-01-04 19:34:09 +08:00   1
    @timothyye 公司改的 Pholcus
    wzwwzw
        39
    wzwwzw  
       2018-01-04 23:57:47 +08:00
    爬虫无非不就是 请求,解析,储存吗? Python Node 或者 Golang 都可以的。
    toono
        40
    toono  
       2018-01-05 08:52:58 +08:00
    @ycz0926 他说的是“弱类型语法”,这种说法我觉得未必是错的。python 是强类型语言,但是在使用语言编写的时候用户并没有被强制显式地声明变量类型,不准确地描述为“弱类型语法”。
    ycz0926
        41
    ycz0926  
       2018-01-05 09:02:31 +08:00
    @toono 第一次听说 “弱类型语法” 。。。
    强弱应当是对类型而言
    https://en.wikipedia.org/wiki/Strong_and_weak_typing
    如果在声明变量时,显示的指明了类型,算强类型语法的话,那除了 c/c++、java。。。这些。。
    bdbai
        42
    bdbai  
       2018-01-05 12:02:00 +08:00 via iPhone
    @toono 你说的是动态类型,不是弱类型。Python 是强类型+动态类型。
    cominghome
        43
    cominghome  
       2018-01-05 14:49:37 +08:00
    @yangzhezjgs 知乎不就是 python 写的嘛。推崇 python 也是没错的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2660 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 02:19 PVG 10:19 LAX 19:19 JFK 22:19
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86