如何在python中使用url

问题描述

我正在使用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。您可以轻松地为没有明确文件扩展名的文件进行修改。