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路徑指向python34\liib\site-packages下:

Python pip install builtwith

然后在Python cmd import。(話說能弄個友好一點的cmd么?簡直一肚子火)

 

安裝的問題主要涉及到Python3的對Exception和print的修改

# import builtwith

出現的錯誤為:

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

File "...\site-packages\builtwith\__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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM