Python 使用 BeautifulSoup 抓取图像

Python Scraping Images With BeautifulSoup

我正在尝试使用 BeautifulSoup 从网站上抓取和下载图像。我抓取了存储在 imgVal 中的链接列表,然后代码可以创建一个新目录来存储图像。我遇到的问题是代码只会从链接列表中下载一张图片。我想全部下载。我怎样才能做到这一点?

from bs4 import BeautifulSoup
from os.path import basename
import requests
import os

...

def writeImages():
    imgVal = getThumbnailLinks()
    imgBasename = '\n'.join(map(str, imgVal))

    pageNumber = '001'
    filename = pageNumber + '/'
    os.makedirs(os.path.dirname(filename), exist_ok=True)

    with open(filename + basename(imgBasename),"wb") as f:
        f.write(requests.get(imgBasename).content)

writeImages()

所以你想下载多行 URL 作为 requests 的输入?你不能,你必须使用循环一项一项地完成。

def writeImages():
    pageNumber = '001'
    filename = pageNumber + '/'
    os.makedirs(os.path.dirname(filename), exist_ok=True)

    imgVal = getThumbnailLinks() # ['http://a.jpg', 'http://b.jpg']
    for imgBasename in imgVal:
        with open(filename + basename(imgBasename),"wb") as f:
            f.write(requests.get(imgBasename).content)

writeImages()