从python中URL调用的方法检索图像

2024-09-26 18:12:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python检索通过给定URL返回的图像,例如:

http://fundamentus.com.br/graficos3.php?codcvm=2453&tipo=108

我正在尝试使用urllib检索方法执行此操作:

import urllib

urlStr = "http://fundamentus.com.br/graficos3.php?codcvm=2453&tipo=108"
filename = "image.png"
urllib.urlretrieve(urlStr,filename)

我已经将它用于其他URL(例如http://chart.finance.yahoo.com/z?s=CMIG4.SA&t=9m),但是对于第一个URL它不起作用。你知道吗

有没有人知道如何为给定的URL制作这个? 注意:我使用的是python2.7


Tags: 方法图像brimportcomhttpurlurllib
2条回答

而比@PadraicCunningham响应更冗长。这也应该起作用。我也遇到了类似的问题(主机只支持某些浏览器),所以我不得不开始使用urllib2,而不仅仅是urllib。非常强大,是python自带的一个模块。你知道吗

基本上,您可以在初始请求期间捕获所需的所有信息,并将其添加到下一个请求和后续请求中。请求模块似乎在幕后为您完成了所有这些。如果这些年我都知道的话。。。你知道吗

import urllib2

urlForCookie = 'http://fundamentus.com.br/graficos.php?papel=CMIG4&tipo=2'
urlForImage = 'http://fundamentus.com.br/graficos3.php?codcvm=2453&tipo=108'

initialRequest = urllib2.Request(urlForCookie)
siteCookie = urllib2.urlopen(req1).headers.get('Set-Cookie')

imageReq = urllib2.Request(urlForImage)
imageReq.add_header('cookie', siteCookie)

with open("image2.pny",'w') as f:
        f.write(urllib2.urlopen(req2).read())
        f.close()

您需要使用可以使用requests执行的会话:

import requests

with requests.Session() as s:
    s.get("http://fundamentus.com.br/graficos.php?papel=CMIG4&tipo=2")
    with open("out.png", "wb") as f:
       f.write(s.get("http://fundamentus.com.br/graficos3.php?codcvm=2453&tipo=108").content)

它在您的浏览器中工作,因为您访问了图像所在的初始页面,所以设置了任何必要的cookies。你知道吗

相关问题 更多 >

    热门问题