问题描述
我正在使用BeautifulSoup和Selenium来爬行imgs。
某些img src具有“ .jpg”,而有些则没有。
这是我的密码。
book_img = soup.find_all('em',{'class': 'imgBdr'})
img_url = book_img[0].find('img')['src']
if '.jpg' in str(img_url):
img = img_url
else:
img = img_url + '.jpg'
img_name = book_img[0].find('img')['alt']
urllib.request.urlretrieve(img,"folder/" + img_name + '.jpg)
但是这样会发生错误
urllib.error.HTTPError: HTTP Error 404: Not Found
如何爬行imgs?
解决方法
您的代码找到404可能有两个原因。
请考虑图像文件类型多于.jpg的可能性
如果它是.png
,该怎么办?您当前正在将.jpg
附加到可能不是jpg的任何内容上。
tinyfrog.png
将变成-> tinyfrog.png.jpg
尝试使用img_url
作为urllib.request.urlretrieve
的第一个参数
urllib.request.urlretrieve(img_url,"folder/" + img_name + img_url.split('.')[-1])
注意:img_url.split('.')[-1]
假设存在文件ext。您可以轻松地为没有明确文件扩展名的文件进行修改。