我试图下载带有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)
回溯(最近一次调用最后一次):文件“C:\ Users \ luke \ Desktop \ scraper \ imager finder.py”,第97行,用urllib.request.urlopen(req)作为响应:文件“C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ urllib \ request.py“,第162行,在urlopen中返回opener.open(url,data,timeout)文件”C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ urllib \ request.py“,第465行,打开响应= self._open(req,data)文件”C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ urllib \ request.py“,第483行,在_open'_open',req)文件”C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ urllib \ request.py“,第443行,在_call_chain result = func(* args)文件”C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ urllib \ request.py“,第1268行,在http_open中返回self.do_open(http.client.HTTPConnection,req)文件“C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ urllib \ request.py”,第1243行,在do_open中r = h.getresponse()文件“C:\ Users \ luke \ AppData \ local \ Programs \ Python \ Python35-32 \ lib \ http \ client.py“,第1174行,在getresponse response.begin()文件”C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ http \ client.py“,第282行,在开始版本,状态,原因= self._read_status()文件”C:\ Users \ luke \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ http \ client.py“,第264行,在_read_status中引发BadStatusLine(行)http.client.BadStatusLine:
1 回答
我的建议是使用urlib2 . 另外,我写了一个很好的函数(我认为),如果服务器支持它,它还将允许gzip编码(减少带宽) . 我使用它来下载社交媒体文件,但应该适用于任何事情 .
我会尝试调试你的代码,但由于它只是一个片段(并且错误信息格式错误),很难确切地知道你的错误发生的位置(它肯定不是你的代码片段中的第97行) .
这并不像它可能的那么短,但它是清晰和可重用的 . 这是python 2.7,看起来你正在使用3 - 在这种情况下,你谷歌一些其他问题,解决如何在python 3中使用urllib2 .