话说大家写爬虫有用 python3 的嘛 - 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
hardman
V2EX    Python

话说大家写爬虫有用 python3 的嘛

  •  
  •   hardman 2018-05-25 08:15:14 +08:00 via Android 7809 次点击
    这是一个创建于 2694 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这几天学习写爬虫使用 py2 和 py3 但是使用 urllib 的时候问题 urllib2 用 python 获取异常但是使用 python3 的时候不是 urllib 和 urllib2 都打包成 urllib 了吗,结果死活调不了 urlerro,书上都是用 pytjon2 但是像 2 和 3 一起搞各位打来有没有好的方法。

    61 条回复    2018-06-05 16:31:40 +08:00
    lifeishort
        1
    lifeishort  
       2018-05-25 08:22:25 +08:00 via iPhone   1
    我大清亡了吗
    chesterzzy
        2
    chesterzzy  
       2018-05-25 08:27:04 +08:00
    合并了就文档啊。
    再说 Python3 没有了编码的后顾之忧,写起来不知道有多爽。
    再再说,不用 requests 吗?
    Sylv
        3
    Sylv  
       2018-05-25 08:44:25 +08:00 via iPhone   2
    提问请好好组织下语言和使用标点符号,否则只是浪费大家的时间。
    wplct
        4
    wplct  
       2018-05-25 08:53:15 +08:00
    requests 了解一下。不过我问一下,服务器怎么安装 python3 环境比较方便
    liwl
        5
    liwl  
       2018-05-25 08:55:22 +08:00
    提问请好好组织下语言和使用标点符号,否则只是浪费大家的时间。
    chengxiao
        6
    chengxiao  
       2018-05-25 08:57:27 +08:00
    各有优势吧
    用 2 写的话部署起来比较方便
    用 3 写的话不用处理那么多编码问题,3 部署起来稍微有些麻烦些
    vsomeone
        7
    vsomeone  
       2018-05-25 09:02:21 +08:00 via iPhone
    你这说的是中文吗…
    holajamc
        8
    holajamc  
       2018-05-25 09:06:25 +08:00   4
    难道还有用 Python2 的嘛?
    Jason0803
        9
    Jason0803  
       2018-05-25 09:08:23 +08:00
    一大串看的头晕
    sikariba
        10
    sikariba  
       2018-05-25 09:08:24 +08:00
    这年头还有用 py2 的吗。。。
    BingoXuan
        11
    BingoXuan  
       2018-05-25 09:14:38 +08:00 via Android
    @sikariba
    我们公司也是被逼着用 2,毕竟客户内部也是用 2。而且客户还是做系统的
    newmind
        12
    newmind  
       2018-05-25 09:15:43 +08:00
    标题改为"话说大家写爬虫有用 python2 的嘛"就正常多了
    wplct
        13
    wplct  
       2018-05-25 09:17:37 +08:00
    公司用的是 2.因为部署方便,也没有升级的动力,
    timothyye
        14
    timothyye  
       2018-05-25 09:18:14 +08:00 via Android
    直接 3 吧,毕竟 2 马上要退出舞台了
    Qzier
        15
    Qzier  
       2018-05-25 09:22:55 +08:00 via iPhone
    python 2 不是快淘汰了吗?大批的库已经放弃 python2 ?
    locktionc
        16
    locktionc  
       2018-05-25 09:25:25 +08:00
    一直用 Python 3 写爬虫。
    soho176
        17
    soho176  
       2018-05-25 09:34:08 +08:00
    @chengxiao 那么多大神,为啥就不能弄出来一个简单的部署的办法那,比如来个一键部署之类的,想不明白啊
    silhouette
        18
    silhouette  
       2018-05-25 09:42:27 +08:00 via Android
    8012 年了
    fy
        19
    fy  
       2018-05-25 09:48:44 +08:00
    大清亡了吗? urllib 这几个库我们不都应该默认无视吗?
    lfzyx
        20
    lfzyx  
       2018-05-25 09:51:40 +08:00
    myyou
        21
    myyou  
       2018-05-25 09:56:42 +08:00
    @wplct 用 pyenv
    soho176
        22
    soho176  
       2018-05-25 09:59:10 +08:00
    作者:alexsunmiu
    链接: https://www.zhihu.com/question/38081354/answer/76689956
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    Python 应用的部署是一个很大的话题,至少是比较复杂的事情,现行的方案大多只是解决了某一方面的问题,或者把某个复杂的问题变成了另一个复杂的问题(或另一种复杂)罢了。抛砖引玉,为什么 Python 应用的部署会成为一个问题?这里暂时只谈服务端部署,毕竟 Py 目前在服务端的应用还是居多,PyQt 之流暂不讨论。讨论时主要与 PHP 与 Java 做比较,Ruby 高度类似 Py 不参与,GoLang 等则会编译至二进制可执行文件,可比较性不大。同时的同时,这里。。。只挖坑不管埋,下面这些问题,我也没想明白,尚未找到一个万全之策。那么,为什么 Python 应用的部署会成为一个问题呢?首先的首先,Python 服务端应用的部署处于一个两难的境地,既不像 PHP 那样丢文件到服务器就行,也不像 Java 那样有个标准的规范可以直接打包到 war。造成了部署复杂这一固有印象,同时另一些问题下,导致这个问题更加复杂。1,操作系统问题,PHP 可以非常容易的与 IIS 共处,但 Python 的 IIS 库(虽然貌似只支持 django )似乎已经烂尾了,几乎已经没有人在 windows 下做生产部署了,同时去看看各云服务器厂商,观察他们的 windows server 的销量就知道这个问题有多严重了。但同时 J2EE 在 windows 下依然可以很欢快,很多人认为 PHP 比 Py 更流行的原因在于 windows 下的执行环境。2,需求的多样化加剧了这个问题,py 生态中对于性能的追求很过分,有几多 Py web 框架数得过来吗,每个 web 框架的运行环境甚至原理完全不一样,举栗子,wsgi、uwsgi、fastcgi 都是可以的,django、flask、web.py 、bottle 这些鼎鼎大名的 web 框架还只能简单归于一类,tornado、twisted web 等再归于一类,部署他们与部署 wsgi app 完全不同的,好复杂。甚至的甚至,一个 Web 开发我们将之拆分成 framework、template engine,ORM 等等好些部分,谈到这个问题我只想说,我想静静。
    jinyu121
        23
    jinyu121  
       2018-05-25 10:22:27 +08:00
    尽信书不如无书

    不如看书后照着自己的想法先 XJB 撸一通,然后找其他资料慢慢完善。

    比如这个 [从零开始写一只爬虫 系列]( https://haoyu.love/blogtag/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99%E4%B8%80%E5%8F%AA%E7%88%AC%E8%99%AB)

    而且……为啥要用 Windows10 …… 人家 Windows98 多流畅啊,资源消耗又少……
    ChenHeliar
        24
    ChenHeliar  
       2018-05-25 10:27:49 +08:00 via Android
    用 requests 吧,我入手就是 py3
    whoami9894
        25
    whoami9894  
       2018-05-25 10:32:45 +08:00 via Android
    什么?我大清亡了?
    ryanz91
        26
    ryanz91  
       2018-05-25 10:36:05 +08:00
    requests 挺好的
    cloverii
        27
    cloverii  
       2018-05-25 10:37:20 +08:00 via Android
    用 requests 吧…公司还在用 2 估计是迁移成本太高…心累
    lanpong
        28
    lanpong  
       2018-05-25 10:40:29 +08:00
    @wplct #4 pyenv 了解一下
    ilyh
        29
    ilyh  
       2018-05-25 10:49:15 +08:00
    request-html 挺好用的啊, 只支持 py3.6+
    manzhiyong
        30
    manzhiyong  
       2018-05-25 10:58:04 +08:00
    很少有用 3 的,用 2 吧
    hubqin
        31
    hubqin  
       2018-05-25 11:02:09 +08:00
    一直用 py3+requests+pymysql
    jyf
        32
    jyf  
       2018-05-25 11:47:16 +08:00
    最近给公司写的项目一律用 py3
    不知道楼上说的部署问题是啥问题 我真没碰到有部署难的 应该说 跟 py2 没区别啊 装个 pip3 依赖放 requirements.txt 里 讲究的人还要弄个 virtualenv 还有啥?
    chengxiao
        33
    chengxiao  
       2018-05-25 11:55:28 +08:00
    @jyf
    很多系统上是没有 3 的 pip 的 还要重新整 3 的环境,2 是连 virtualenv 都不用的 放机器上直接就写个 sh 就能一直跑了
    相比之下多了不少步骤的
    wwwd0g
        34
    wwwd0g  
       2018-05-25 12:09:14 +08:00
    @ChenHeliar
    @locktionc
    @wplct
    你们用 requests 的时候,网页读取超时如果解决的?不是链接超时,timeout 默认是链接超时,timeout=(3,9),这样是链接超时 3 秒,读取超时 9 秒,但是我自己测试发现读取超时没啥卵用诶
    DonaidTrump
        35
    DonaidTrump  
       2018-05-25 12:13:52 +08:00 via iPhone
    写爬虫还有直接用 urllib 的?
    panpanpan
        36
    panpanpan  
       2018-05-25 12:15:58 +08:00 via iPhone
    都 8102 年了,还在 py2 ?写爬虫当然用 scrapy 啊
    ly529
        37
    ly529  
       2018-05-25 14:55:26 +08:00
    我用的 2,不知道别人
    Ailoli
        38
    Ailoli  
       2018-05-25 14:57:44 +08:00 via Android
    学的就是 3
    exkernel
        39
    exkernel  
       2018-05-25 15:42:42 +08:00
    py3 的 aiohttp 多好用
    JCZ2MkKb5S8ZX9pq
        40
    JCZ2MkKb5S8ZX9pq  
       2018-05-25 16:09:56 +08:00
    自己写了个 request,把常用的功能整合进去,json 完整性、返回错误排除、自动重新请求、代理服务器轮换等等,每次爬用自己的一套。从 2 换到 3 没费太大功夫。
    beforeuwait
        41
    beforeuwait  
       2018-05-25 16:17:23 +08:00
    入门时候是 py2,去公司开始生产就是 py3
    tujin
        42
    tujin  
       2018-05-25 17:24:16 +08:00
    8012 年不用 3 ?
    teaser
        43
    teaser  
       2018-05-25 17:44:01 +08:00
    现在还是 2...
    ballshapesdsd
        44
    ballshapesdsd  
       2018-05-25 17:47:06 +08:00
    语言表达能力堪忧
    wenzhoou
        45
    wenzhoou  
       2018-05-25 18:59:29 +08:00 via Android
    干嘛不用 docker
    weixiangzhe
        46
    weixiangzhe  
       2018-05-25 20:46:05 +08:00
    大学二级 python 都是 3 了。。。
    Hopetree
        47
    Hopetree  
       2018-05-25 20:50:47 +08:00
    不好意思,我只会 requests,只会 Python3,虽然我发现公司的代码还是 Python2
    julyclyde
        48
    julyclyde  
       2018-05-25 22:38:27 +08:00
    @soho176 不给你一键部署其实是节省你的时间啊。趁早放弃
    aaronzjw
        49
    aaronzjw  
       2018-05-25 22:49:07 +08:00 via iPhone
    建议看看 k 神的 requests,然后回来重新组织下语言
    encro
        50
    encro  
       2018-05-25 22:59:44 +08:00
    django,scripy,requests,bs 都支持 py3,还有什么理由不用呢?
    encro
        51
    encro  
       2018-05-25 23:02:01 +08:00
    @soho176 用过 python 吗?
    mingyun
        52
    mingyun  
       2018-05-25 23:42:03 +08:00
    肯定用 py3 了 没有烦人的编码问题
    zyxbcde
        53
    zyxbcde  
       2018-05-26 02:07:34 +08:00 via Android
    urllib2 ??这玩意居然还有人用来写爬虫
    codeeer
        54
    codeeer  
       2018-05-26 02:16:49 +08:00 via iPhone
    @wplct 忠告,用 pyenv 吧,不要去升级系统的 python2
    ClutchBear
        55
    ClutchBear  
       2018-05-26 03:01:41 +08:00
    用 python2 的,
    不知道你们对 3.6 的 type hints,也就是类型注解怎么看
    反正我在的小公司, 强制使用这个.
    定义变量 函数返回值一律使用类型注解.
    wizardoz
        56
    wizardoz  
       2018-05-26 12:06:58 +08:00
    为什么大家都推荐 requests 而不是 scrapy ?
    RealGM
        57
    RealGM  
       2018-05-26 12:43:04 +08:00
    别用 2 了 马上不支持维护更新了
    julyclyde
        58
    julyclyde  
       2018-05-26 12:53:59 +08:00
    @wizardoz 这俩完全不是一个方面的东西。大家推荐 requests 并不代表不推荐 scrapy,都是你自己脑补的
    nitro123
        59
    nitro123  
       2018-05-26 16:33:33 +08:00
    @chengxiao py3 部署难在那里?
    jyf
        60
    jyf  
       2018-06-05 16:30:47 +08:00
    @chengxiao 没有 pip3 你不能装一个么?
    一行命令的事 你应该不是穿越过来的吧

    ```
    sudo apt install -y pip3 python3-dev
    ```

    其他系统也是大同小异啊 我的手机上都直接支持
    jyf
        61
    jyf  
       2018-06-05 16:31:40 +08:00
    @panpanpan 难道不是 selenium?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1097 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 23:18 PVG 07:18 LAX 16:18 JFK 19:18
    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