2016-11-19 54 views
2

我想從url中爲圖表圖像刮取stockcharts.com。例如:http://stockcharts.com/h-sc/ui?s=AMZN用python網頁瀏覽圖像但找不到圖像

但是,在檢查有問題的元素時,它不是具有.jpg,.png等後綴的正確圖像src。例如,在從上面的鏈接問題的元素是:http://stockcharts.com/c-sc/sc?s=AMZN&p=D&b=5&g=0&i=0&r=1479451634864

,因此當我嘗試使用下面的代碼在Python 2.7,我得到目錄中的一個空文件共享的腳本:

import urllib 
url = "http://stockcharts.com/c-sc/sc?s=AMZN&p=D&b=5&g=0&i=0&r=1479451634864" 
filename = "testimg.jpg" 
urllib.urlretrieve(url, filename) 

這是一個JavaScript呈現的頁面,還是有什麼我失蹤?對其他地方的引用?

回答

-1

本站檢查User-Agent表頭;它只允許特定的用戶代理。

您需要更改標題以獲取圖像。否則,該網站將返回403 Forbidden響應。

urllib.urlretrieve不接受額外的頭,你需要使用urllib2.urlopen/urllib2.Request指定自定義頁眉和保存文件的自己:

import urllib2 

url = "http://stockcharts.com/c-sc/sc?s=AMZN&p=D&b=5&g=0&i=0&r=1479451634864" 
filename = "sc.png" 
req = urllib2.Request(url, headers={'User-Agent': 'Mozilla/5.0'}) 
u = urllib2.urlopen(req) 
with open(filename, 'wb') as f: 
    f.write(u.read()) 
+0

@downvoter,我怎樣才能提高答案?請讓我知道答案有什麼問題。 – falsetru

+1

@JRodDynamite,謝謝你的英文更正。 – falsetru

+0

我假設你有像我這樣的Windows 7 64位。我點擊第一句話中的鏈接,並在圖表中獲得一個新頁面。我右鍵單擊圖表並選擇「另存爲」,圖像文件的文件名是「sc.png」而不是「testimg.jpg」 – Marichyasana