首先,您應該導入urllib.request
,而不僅僅是urllib(在Py3中)。
然後您將對象分配給一個變量,以便它將對象實例作爲輸出提供給您。 沒有錯,只是給你一個速戰速決,嘗試做:
In [1]: import urllib.request
In [2]: down_link = "http://vignette3.wikia.nocookie.net/shipoffools/images/4/42/Surprised_Luffy.jpg/revision/latest?cb=20120921134043"
In [3]: path_to_save = "../luffy.jpg"
In [4]: urllib.request.urlretrieve(down_link, path_to_save)
Out[4]: ('../luffy.jpg', <http.client.HTTPMessage at 0x47f6af0>)
這會工作得很好,節省您想要的圖像。 如果你沒有指定path_to_save,那很好,因爲它會下載反正和路徑將是tmp
目錄,在你的情況下,它會是C:\\Users\\rakesh.j.kulkarni\\AppData\\Local\\Temp\\
文件夾。
在https
相關的錯誤或其他問題的情況下,有這樣做,通過讀取該文件與urlopen
並將其保存在您的計算機上的文件的更清潔的方式:
In [5]: import urllib.request as req
In [6]: down_link = "https://vignette3.wikia.nocookie.net/shipoffools/images/4/42/
...: Surprised_Luffy.jpg/revision/latest?cb=20120921134043"
In [7]: fname = "../luffy.jpg"
In [8]: with req.urlopen(down_link) as d, open(fname, "wb") as opfile:
...: data = d.read()
...: opfile.write(data)
...:
注意:此方法可能需要一些時間,但對於正常的小文件來說工作得很好。
javascript下載/重定向:在javascript或php腳本下載的情況下,使用
subprocess
在瀏覽器中打開鏈接實際上並不是動態代碼,因爲您需要指定瀏覽器的路徑,您可以使用一個預先存在的模塊
webbrowser
,它會自動檢測系統中的默認瀏覽器並打開url。
import webbrowser
url = ...
webbrowser.open(url, autoraise=True) # normal
webbrowser.open_new(url) # new window
webbrowser.open_new_tab(url) # new tab
我忘了提,這是一個的「https」的要求,我試着用你的方法,但仍然我得到的,而不是實際的文本文件 – user2728397
在它的HTML源相同的文件,只是做了編輯,怎麼樣,那會起作用嗎? –
我不明白爲什麼它不工作,當我得到的HTML源碼,我試圖打開它的網頁瀏覽器,它給了我的網站登錄頁面,所以我想出了不同的過程,而不是'subprocess.Popen ([「C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe」,down_link])'現在它下載文本文件並將其保存在下載文件中,然後處理該文件。 – user2728397