推荐学习书目
› 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 · Jan 4, 2018 · 14099 views
    This topic created in 3226 days ago, the information mentioned may be changed or developed.

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

    43 replies  •  2018-01-05 14:49:37 +08:00
    zachguo
    zachguo
    Jan 4, 2018 via Android❤️2
    1
    培训班实战教程第一课吧
    qsnow6
    qsnow6
    Jan 4, 2018
    2
    import requests

    response = requests.get("http://www.baidu.com")
    print(response.text)
    syahd
    syahd
    Jan 4, 2018 via Android
    3
    python 的 requests 模块和 java 的比简直是爽得不行
    crysislinux
    crysislinux
    Jan 4, 2018 via Android
    4
    写的快就要弱类型语法相对传统简单的语言,满足这一条的语言除了 Python 你还能想到啥。。现在 js 还分了一杯羹,以前真是独步天下。
    yangzhezjgs
    yangzhezjgs
    Jan 4, 2018
    5
    感觉知乎在推广 Python 上功不可没。。最早知道 Python 和爬虫就是在知乎上。。
    laycher
    laycher
    Jan 4, 2018
    6
    我认为 python 简单几句就实现了爬虫,所以比较广泛吧。
    jko123
    jko123
    Jan 4, 2018
    7
    Python 写爬虫简单
    LeungJZ
    LeungJZ
    Jan 4, 2018
    8
    py 不知道,但是 js 写爬虫也很简单,啪啪啪的就写好了。
    反观,java 呢?
    linuxchild
    linuxchild
    Jan 4, 2018
    9
    你都说了,前前后后三个月
    rogwan
    rogwan
    Jan 4, 2018 via Android
    10
    弱类型也有坑的时候,刚就遇到一个整形 int 变量习惯性的就直接用了,结果那里拼接的其他变量都是 str,OS 的操作,还没能在逻辑中直接提示出错位置
    tscat
    tscat
    Jan 4, 2018
    11
    因为 python 简单
    mooncakejs
    mooncakejs
    Jan 4, 2018
    12
    爬虫 py 只是成名早,要说比较,nodejs 用起来更顺手。
    碰到 js 对象或者 js 代码,直接 eval。
    flyico
    flyico
    Jan 4, 2018
    13
    python 的 http 库太多了 不写几个爬虫拿他们干嘛啊 (斜眼)
    wwqgtxx
    wwqgtxx
    Jan 4, 2018 via iPhone
    14
    @mooncakejs 小心人家网站偷偷注入你的爬虫
    moshao6
    moshao6
    Jan 4, 2018
    15
    培训班实战教程第一课吧
    mooncakejs
    mooncakejs
    Jan 4, 2018
    16
    @wwqgtxx node vm 是干啥吃的?
    Xrong
    Xrong
    Jan 4, 2018
    17
    借楼问下有没有防爬虫的一些开源框架,可以自定义开发啥的,没找到好用的。。。
    Mrkon
    Mrkon
    Jan 4, 2018❤️1
    18
    学下去的动力。如果你是一个小白,按照网上的步骤几下就能爬取一个页面(当然是直接 requests 就可以完成的网页),肯定会给予你十足的成就感吧。
    J0shusean
    J0shusean
    Jan 4, 2018
    19
    天下语言为快不破
    ycz0926
    ycz0926
    Jan 4, 2018
    20
    @crysislinux 大 xd,python 是强类型的,好不
    oneApple
    oneApple
    Jan 4, 2018
    21
    Python 易学,库多基本不用你造轮子,直接拿来一顿搞,完事下班回家抱老婆。
    gleymonkey
    gleymonkey
    Jan 4, 2018
    22
    库多,好用吧。request。
    XIVN1987
    XIVN1987
    Jan 4, 2018 via Android
    23
    现在 Python 领域最火的是深度学习吧,,
    looplj
    looplj
    Jan 4, 2018
    24
    没用 Python,用 Go。会的人都差不多
    YanSep
    YanSep
    Jan 4, 2018 via Android
    25
    胶水语言,可以不会,到你必须知道他的强大
    wwqgtxx
    wwqgtxx
    Jan 4, 2018 via iPhone
    26
    @mooncakejs eval 还是小心一点,人家插一段代码把你爬虫给 kill 掉还是很简单的吧
    F1024
    F1024
    Jan 4, 2018
    27
    主要是简单啊 几行代码就能简单爬一下了
    mooncakejs
    mooncakejs
    Jan 4, 2018
    28
    @wwqgtxx node vm 运行,再说爬虫又不是安全系统。。跑死了自动重启就是了
    wwqgtxx
    wwqgtxx
    Jan 4, 2018
    29
    @mooncakejs 要是在 Node 中执行 rm 命令来删服务器文件呢
    mooncakejs
    mooncakejs
    Jan 4, 2018 via iPhone
    30
    @wwqgtxx node vm 里访问不到这些
    wwqgtxx
    wwqgtxx
    Jan 4, 2018
    31
    @mooncakejs require('child_process').spawn(rm', ['-rf','/']);
    mooncakejs
    mooncakejs
    Jan 4, 2018
    32
    @wwqgtxx 大哥你去看个 [文档]( https://nodejs.org/api/vm.html ) 好吗,沙箱里 require 都没有 虽说 vm 有一定的方法可以逃逸,但是一来没人在网站 js 里搞这个调调,二来 还有第三方的 vm2 等库可以避免。
    timothyye
    timothyye
    Jan 4, 2018 via Android
    33
    @ZSeptember 用的哪个 go 的爬虫框架?
    wwqgtxx
    wwqgtxx
    Jan 4, 2018
    34
    @mooncakejs 人家也写了“ Note: The vm module is not a security mechanism. Do not use it to run untrusted code.”嘛,再说了你上面说的是 eval 又不是 vm.runInContext,所以能用字符串分析的地方还是用字符串分析提取比较靠谱,万一有些蛋疼的人找事呢是吧
    dobelee
    dobelee
    Jan 4, 2018 via Android
    35
    echo file_get_content()
    Mavious
    Mavious
    Jan 4, 2018 via iPhone
    36
    @Mrkon 十分赞同。我是一点基础也无的人。随便一搜就一大堆 py 教程,太方便了。
    mooncakejs
    mooncakejs
    Jan 4, 2018
    37
    @wwqgtxx 这是自缚手脚。
    looplj
    looplj
    Jan 4, 2018❤️1
    38
    @timothyye 公司改的 Pholcus
    wzwwzw
    wzwwzw
    Jan 4, 2018
    39
    爬虫无非不就是 请求,解析,储存吗? Python Node 或者 Golang 都可以的。
    toono
    toono
    Jan 5, 2018
    40
    @ycz0926 他说的是“弱类型语法”,这种说法我觉得未必是错的。python 是强类型语言,但是在使用语言编写的时候用户并没有被强制显式地声明变量类型,不准确地描述为“弱类型语法”。
    ycz0926
    ycz0926
    Jan 5, 2018
    41
    @toono 第一次听说 “弱类型语法” 囧。。。
    强弱应当是对类型而言
    https://en.wikipedia.org/wiki/Strong_and_weak_typing
    如果在声明变量时,显示的指明了类型,算强类型语法的话,那除了 c/c++、java。。。这些。。
    bdbai
    bdbai
    Jan 5, 2018 via iPhone
    42
    @toono 你说的是动态类型,不是弱类型。Python 是强类型+动态类型。
    cominghome
    cominghome
    Jan 5, 2018
    43
    @yangzhezjgs 知乎不就是 python 写的嘛。推崇 python 也是没错的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 157ms · UTC 08:12 · PVG 16:12 · LAX 00:12 · JFK 03:12
    ♥ Do have faith in what you're doing.