Python訪問網頁報錯,ValueError: unknown url type,求問什麼原因?
import urllib.request
url = "//http://ww4.sinaimg.cn/mw600/006D2KSdjw1fbgxh52n43j30rs15owuq.jpg"#url = "知乎 - 與世界分享你的知識、經驗和見解"req = urllib.request.Request(url)
response = urllib.request.urlopen(req)html = response.read().decode("utf-8")print(html)這一段代碼運行時,打開知乎沒問題,但是打開第一個網頁(沒注釋的)就會報錯:Traceback (most recent call last): File "C:/Users/acer/Desktop/MyPython/url_test.py", line 7, in & req = urllib.request.Request(url) File "C:UsersacerAppDataLocalProgramsPythonPython35liburllib
self.full_url = url File "C:UsersacerAppDataLocalProgramsPythonPython35liburllib
equest.py", line 269, in __init__
equest.py", line 295, in full_url self._parse() File "C:UsersacerAppDataLocalProgramsPythonPython35liburllib
equest.py", line 324, in _parseraise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: "//http://ww4.sinaimg.cn/mw600/006D2KSdjw1fbgxh52n43j30rs15owuq.jpg"看提示,應該未知url類型,但是這個網址我用Firefox和Chrome瀏覽器都能打開,所以不知道為什麼會報錯,對了Python版本是3.5.3rc1…… 另外,本人新手,剛學Python幾天
url地址必須是http://
或者 https:// 這樣才行啊
『:"被替換成了"%3A",不加url = urllib.parse.quote(url),報這樣的錯:
self._output(request.encode("ascii"))
UnicodeEncodeError: "ascii" codec can"t encode characters in position 192-196: ordinal not in range(128)
- 參考文章(Python3 爬蟲編寫報錯及解決方法整理)和 (python3 URLError unknown url type http)使用urllib,加上url = urllib.parse.quote(url),就報下面的錯:
raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: "http%3A//autocomplete.h省略URL
這問題類似於(ValueError: unknown url type: #x27;url#x27;),然後大家有什麼見解嗎,因為爬取的url很長有特殊字元
知道原因了嗎同問
確實是缺少了『http:『,比較簡單的方法改成url = " "http:" + (這類unkonw url type)url ", 這是適用於爬取到了大量的unknown url type的url,如果只是爬取一個url的話,直接把網址改了就好了
推薦閱讀:
※Python的from import和import的區別?
※python有什麼類似特性(或者是解釋型語言特性)?
※新手遇到笨辦法學python第13題?
※Python中locale如何配置setlocale()的參數?
※你看好 Python 3 嗎?