python3中导入urllib2库

转自:http://blog.csdn.net/qq_27657429/article/details/52653164

最近在看PACKT的Python Web Scraping, 书上用的是Python 2.X,但是自己电脑上却用的Python 3.4。

版本升级没什么好说的,只是很多的工具包并没有跟着升级。同时目前很多经典教材都是2.X为基础的,并没有跟着升级3.X的内容。十分无语。

搜了下知乎,发现许多人还是认可Python3的升级。

只是我记得Python的快速原型部署一直是程序员津津乐道的话题,现在因为许多常用lib的原因,纠结在语言升级后工具的安装上,令人十分火大。

Windows没有设置pip的路径,所有自己cmd路径指向python34liibsite-packages下:

Python pip install builtwith

然后在Python cmd import。(话说能弄个友好一点的cmd么?简直一肚子火)

安装的问题主要涉及到Python3的对Exception和print的修改

# import builtwith

出现的错误为:

File "<stdin>"m line 1, in <module>

File "...site-packagesuiltwith\__init__.py", line44

"Exception, e"

因为Python2中的Exception,e 的写法不再支持,需要修改成Exception as e.

(这句话看了我半天, 明明说是抛出了Exception e, 却硬是没看到e的信息,火大!)

另外Python2中的print语句在Python3中需要写成print(),按照错误提示修改对应行数即可。

语法问题修改之后,会报一个没有安装urllib2的包的错误。

通过pip install  urllib2也会提示找不到包。

这是因为builtwith依赖于urllib2包。但Pyhton2中的urllib2工具包,在Python3中分拆成了urllib.request和urllib.error两个包。就导致找不到包,同时也没办法安装。

所以需要install urllib.request和install urllib.error 两个包,然后将builtwith包中的import urllib2修改为import urllib.request 和import urllib.error。

同时代码中的方法函数也需要修改,基本就是将urllib2.xxx修改为urllib.request.xxx。

urllib2修改后对应的函数列表见:https://docs.python.org/2/library/urllib2.html。