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 · 12182 次点击
    这是一个创建于 2275 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我曾经就用 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)
    whwq2012
        3
    whwq2012  
       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 简单几句就实现了爬虫,所以比较广泛吧。
    chen2016
        7
    chen2016  
       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 领域最火的是深度学习吧,,
    ZSeptember
        24
    ZSeptember  
       2018-01-04 18:23:08 +08:00
    没用 Python,用 Go。会的人都差不多
    Flobit
        25
    Flobit  
       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 这是自缚手脚。
    ZSeptember
        38
    ZSeptember  
       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   ·   我们的愿景   ·   实用小工具   ·   989 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 21:57 · PVG 05:57 · LAX 14:57 · JFK 17:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.