我在我的站点上创建了一个页面http://shedez.com/test.html这个页面将用户重定向到服务器上的jpg
我想用python脚本将这个图像复制到本地驱动器。我希望python脚本首先转到主url,然后到达图片的目标url
而不是复制图像。到目前为止,目的地的网址是硬编码的,但在将来它将是动态的,因为我将使用地理编码通过ip找到城市,然后将我的用户重定向到他们所在城市的一天图片。在
==我现在的脚本===
import urllib2, os
req = urllib2.urlopen("http://shedez.com/test.html")
final_link = req.info()
print req.info()
def get_image(remote, local):
imgData = urllib2.urlopen(final_link).read()
output = open(local,'wb')
output.write(imgData)
output.close()
return local
fn = os.path.join(self.tmp, 'bells.jpg')
firstimg = get_image(final_link, fn)
您似乎在使用html
http-equiv
重定向。要透明地使用Python处理重定向,请改用服务器端的HTTP 302响应头。否则,您将不得不解析HTML并遵循重定向manually或使用类似于mechanize的内容。在它似乎不是头重定向。这是url的正文-
您可以轻松地使用
urllib
或requests
获取内容,并使用BeautifulSoup
或lxml
解析HTML,从meta
标记获取图像url。在正如答案所提到的:要么重定向到图像本身,要么从html解析出url。在
关于前者,重定向,如果您使用nginx或HAproxy服务器端,您可以将
X-Accel-Redirect
设置为映像的uri,它将得到适当的服务。有关详细信息,请参见http://wiki.nginx.org/X-accel。在相关问题 更多 >
编程相关推荐