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()
我正在尝试使用 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()