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

2018-05-25 08:15:14 +08:00
 hardman

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

7110 次点击
所在节点    Python
61 条回复
myyou
2018-05-25 09:56:42 +08:00
@wplct 用 pyenv
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
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
2018-05-25 10:27:49 +08:00
用 requests 吧,我入手就是 py3
whoami9894
2018-05-25 10:32:45 +08:00
什么?我大清亡了?
ryanz91
2018-05-25 10:36:05 +08:00
requests 挺好的
cloverii
2018-05-25 10:37:20 +08:00
用 requests 吧…公司还在用 2 估计是迁移成本太高…心累
lanpong
2018-05-25 10:40:29 +08:00
@wplct #4 pyenv 了解一下
ilyh
2018-05-25 10:49:15 +08:00
request-html 挺好用的啊, 只支持 py3.6+
manzhiyong
2018-05-25 10:58:04 +08:00
很少有用 3 的,用 2 吧
hubqin
2018-05-25 11:02:09 +08:00
一直用 py3+requests+pymysql
jyf
2018-05-25 11:47:16 +08:00
最近给公司写的项目一律用 py3
不知道楼上说的部署问题是啥问题 我真没碰到有部署难的 应该说 跟 py2 没区别啊 装个 pip3 依赖放 requirements.txt 里 讲究的人还要弄个 virtualenv 还有啥?
chengxiao
2018-05-25 11:55:28 +08:00
@jyf
很多系统上是没有 3 的 pip 的 还要重新整 3 的环境,2 是连 virtualenv 都不用的 放机器上直接就写个 sh 就能一直跑了
相比之下多了不少步骤的
wwwd0g
2018-05-25 12:09:14 +08:00
@ChenHeliar
@locktionc
@wplct
你们用 requests 的时候,网页读取超时如果解决的?不是链接超时,timeout 默认是链接超时,timeout=(3,9),这样是链接超时 3 秒,读取超时 9 秒,但是我自己测试发现读取超时没啥卵用诶
tulongtou
2018-05-25 12:13:52 +08:00
写爬虫还有直接用 urllib 的?
panpanpan
2018-05-25 12:15:58 +08:00
都 8102 年了,还在 py2 ?写爬虫当然用 scrapy 啊
ly529
2018-05-25 14:55:26 +08:00
我用的 2,不知道别人
Ailoli
2018-05-25 14:57:44 +08:00
学的就是 3
exkernel
2018-05-25 15:42:42 +08:00
py3 的 aiohttp 多好用
JCZ2MkKb5S8ZX9pq
2018-05-25 16:09:56 +08:00
自己写了个 request,把常用的功能整合进去,json 完整性、返回错误排除、自动重新请求、代理服务器轮换等等,每次爬用自己的一套。从 2 换到 3 没费太大功夫。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/457614

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX