从 Python 中的网站抓取的图像的绝对路径的相对路径

Relative path to Absolute paths of images scraped from websites in Python

我抓取了一个图片网站,然后将下载这些图片,但是为了能够下载它们,我需要找到图片的绝对路径,因为这是我设法抓取的内容:

2001.JPG big.jpg pics.gif gchq.jpg

所有这些图像都存储在变量中 images 我正在寻找一个可以一次找到所有绝对路径并将它们存储在变量中的函数?

这是我用来抓取图片的代码:

images = re.findall(r'src=[\"|\']([^\"|\']+)[\"|\']',webpage.decode())

(我在这里看过其他各种类似的问题,但 none 似乎一次处理多张图片)

如果有人能给我指出正确的方向,那就太好了,还有关于下载它们的任何建议。

使用 BeautifulSoup 和 urllib,您应该能够收集网页中的图像,迭代并下载它们。

from urllib import urlretrieve
import urlparse
from bs4 import BeautifulSoup
import urllib2

url = "<your_url>"
soup = BeautifulSoup(urllib2.urlopen(url))
for img in soup.select('img'):
    img_url = urlparse.urljoin(url, img['src'])
    file_name = img['src'].split('/')[-1]
    urlretrieve(img_url, file_name)

Python3个兼容码,

from bs4 import BeautifulSoup
from urllib.request import urlopen, urlretrieve
from urllib.parse import urljoin

url = "<url>"
soup = BeautifulSoup(urlopen(url))

for img in soup.find_all('img'):
    img_url = urljoin(url, img['src'])
    file_name = img['src'].split('/')[-1]
    urlretrieve(img_url, file_name)