Python爬蟲的乙個編碼問題

2021-07-27 11:29:12 字數 593 閱讀 9820

今天在爬取「博時楊銳」這個網頁的時候,

程式報錯: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...