当前位置: 首页 > 知识库问答 >
问题:

Python下载带有警报变量的图像

宦书
2023-03-14

我试图下载带有url更改的图像,但出现了一个错误。

url_image="http://www.joblo.com/timthumb.php?src=/posters/images/full/"+str(title_2)+"-poster1.jpg&h=333&w=225"

user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
headers = {'User-Agent': user_agent}
req = urllib.request.Request(url_image, None, headers)


print(url_image)
#image, h = urllib.request.urlretrieve(url_image)
with urllib.request.urlopen(req) as response:
    the_page = response.read()

#print (the_page)


with open('poster.jpg', 'wb') as f:
    f.write(the_page)

Traceback(最近一次调用最后一次):文件"C:\用户\luke\桌面\刮刀\相机finder.py",第97行,urllib.request.urlopen(req)作为响应:文件"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\urllib\request.py",第162行,在urlopin返回opener.open(url,数据,超时)File"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\urllib\request.py",第465行,in open响应=自己。_open(req,数据)File"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\urllib\request.py",第483行,_open'_open',req)文件"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\urllib\request.py",第443行,_call_chain结果=func(*args)File"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\urllib\request.py",第1268行,http_open返回self.do_open(http.client.HTTPConnection,req)File"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\urllib\request.py",第1243行,do_openr=h.getresponse()File"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\超文本传输协议\client.py",第1174行,在get响应response.begin()文件"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\超文本传输协议\client.py",第282行,在开始版本,状态,原因=自我。_read_status()文件"C:\用户\luke\AppData\本地\程序\Python\Python35-32\lib\超文本传输协议\client.py",第264行,_read_status引起BadStatusLine(line)http.client.BadStatusLine:

共有1个答案

赵鸿畴
2023-03-14

我的建议是使用urlib2。此外,我还编写了一个很好的函数(我认为),如果服务器支持gzip编码(减少带宽),它也将允许gzip编码。我用它来下载社交媒体文件,但应该适用于任何东西。

我会尝试调试您的代码,但是因为它只是一个片段(并且错误消息的格式很糟糕),很难确切地知道您的错误发生在哪里(它肯定不是代码片段中的第97行)。

这并不像它可能的那样短,但是它是清晰的和可重复使用的。这是python 2.7,它看起来像你在使用3-在这种情况下,你谷歌了一些其他问题,解决如何在python 3中使用urllib2。

import urllib2
import gzip
from StringIO import StringIO

def download(url):
    """
    Download and return the file specified in the URL; attempt to use
    gzip encoding if possible.
    """
    request = urllib2.Request(url)
    request.add_header('Accept-Encoding', 'gzip')
    try:
        response = urllib2.urlopen(request)
    except Exception, e:
        raise IOError("%s(%s) %s" % (_ERRORS[1], url, e))
    payload = response.read()
    if response.info().get('Content-Encoding') == 'gzip':
        buf = StringIO(payload)
        f = gzip.GzipFile(fileobj=buf)
        payload = f.read()
    return payload

def save_media(filename, media):
    file_handle = open(filename, "wb")
    file_handle.write(media)
    file_handle.close()

title_2 = "10-cloverfield-lane"
media = download("http://www.joblo.com/timthumb.php?src=/posters/images/full/{}-poster1.jpg&h=333&w=225".format(title_2))
save_media("poster.jpg", media)
 类似资料:
  • 我现在一筹莫展。 请求代码收集在一个ArrayList中,这样当程序退出时,另一个函数可以清除所有警报。 现在的问题是:我的警报器打不响。我能够找到这个函数的错误。AlarmManager实例很好。我在底部设置了一个测试警报(在带有星号的行之后)。着火了。为什么???

  • 问题内容: Python会为具有单个自变量的函数计算最合适的参数,但是有没有办法使用或其他方式来拟合具有多个自变量的函数?例如: 其中x和y是自变量,我们希望适合a,b和c。 问题答案: 您可以为自变量传递多维数组,但随后您必须接受相同的内容。例如,调用此数组,并将其拆包,为清楚起见: 适合:

  • 我正在尝试使用python3构建带有GUI的youtube下载程序。在学习了python的基础知识之后,我正在尝试构建一个。我正在使用“pafy”和“TKinter”模块。 以下是GUI 1中涉及的小部件。一个输入字段,用于输入URL 2。在它旁边粘贴按钮3。媒体选择下拉菜单4。另一个下拉菜单列出介质质量(取决于以前的介质输入)5。最后是下载按钮 这是我的密码 我被“下载功能”卡住了。我是否正确使

  • 我正在尝试加强我对asyncTask的了解,所以我按照教程下载了一个图像,但我不明白,我得到了一个错误的ArrayOutofBound索引,所以如果有人告诉我原因这里是代码,请告诉我为什么他迭代进度条最大 下面是堆栈跟踪01-20 03:37:40.607 407 5-4096/com.gamecodeschool.bodybuilder E/AndroidRuntime:致命异常:AsyncTa

  • 本文向大家介绍Python实现批量下载图片的方法,包括了Python实现批量下载图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现批量下载图片的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 在处理上述异常时,又发生了一个异常: 回溯(最近一次调用):文件“/users/macintosh/pycharmprojects/claculatorer/bucky.py”,第9行,在download_web_image(“https://upload.wikimedia.org/wikipedia/commons/b/b4/jpeg_example_jpg_rip_100.jpg”)中;文件