今天在爬取「博時楊銳」這個網頁的時候,
程式報錯:unicodeencodeerror: 'ascii' codec can't encode characters in position 32-34: ordinal not in range(128)
我以為這是程式編碼的問題。
結果根據報錯的**尋找到的結果發現,只有python2.x才會出現這個問題。並且通過函式
import importlib,sys
importlib.reload(sys)
print(sys.getdefaultencoding())
獲取我們直譯器用的編碼確實是utf-8,和網頁編碼一致
通過單步除錯,發現問題出在函式urllib.request.urlopen()
urllib.request.urlopen()開啟帶有中文的網頁會報錯。
所以需要先用urllib.parse.quote()對鏈結中的中文進行處理
root_url = "" + urllib.parse.quote("博時楊睿")
這樣,這個問題就解決了。 乙個簡單的Python爬蟲
乙個簡單測試爬蟲的網頁 1.獲取 的html import urllib.request request urllib.request.urlopen str request.read print str 2.返回網頁標題 輸出目標網頁內title標籤內的文字 gettitle 函式返回網頁的標題,...
乙個討厭的編碼問題
編碼問題很討厭。昨天就碰到了乙個,花了幾個小時才解決。使用dotnetzip這個庫自動打包資料夾,原來的 是 var dir new directoryinfo c foo using zipfile zip new zipfile encoding.utf8 看上去很正常,也似乎能work,成功打...
python爬蟲 第乙個爬蟲
1.本地安裝了nginx,在預設的html目錄下建立測試html 如圖,即index.html導向a,b,c 3個html,a.html又可以導向aa,bb兩個html,c.html可以導向cc.html。2.修改nignx配置使得本地可以訪問寫的kmtest裡的index.html。參考文件 ng...