下面是我给出的Python实现下载指定网址所有图片的攻略。
步骤一:安装必要的库
使用Python实现下载指定网址所有图片需要用到requests, BeautifulSoup和os三个python库,需要先进行安装。可以使用以下命令在命令行中安装:
pip install requests
pip install beautifulsoup4
pip install os
步骤二:获取网页内容
使用requests库获取网页内容,得到一个response对象。可以使用以下代码:
import requests
def get_html(url):
try:
response = requests.get(url)
response.raise_for_status()
response.encoding = response.apparent_encoding
return response.text
except:
print('获取网页内容失败!')
步骤三:解析网页内容
使用BeautifulSoup库解析网页内容,定位需要下载的图片。可以使用以下代码:
from bs4 import BeautifulSoup
import re
def get_img_urls(html):
try:
soup = BeautifulSoup(html, 'html.parser')
img_tags = soup.find_all('img')
img_urls = [img.get('src') for img in img_tags if img.get('src')]
return img_urls
except:
print('解析网页内容失败!')
步骤四:下载图片
使用requests库下载图片。可以使用以下代码:
def download_img(img_url, img_path):
try:
response = requests.get(img_url)
if response.status_code == 200:
with open(img_path, 'wb') as f:
f.write(response.content)
else:
print('下载图片失败!')
except:
print('下载图片失败!')
步骤五:整合代码实现下载
将上面的三个函数整合起来,实现下载所有图片的功能。可以使用以下代码:
import os
def download_all_images(url, folder_path):
html = get_html(url)
img_urls = get_img_urls(html)
for i, img_url in enumerate(img_urls):
img_path = os.path.join(folder_path, str(i)+os.path.splitext(img_url)[-1])
download_img(img_url, img_path)
示例一:下载Pixabay网站所有图片
以下示例演示如何使用上述函数下载Pixabay网站所有图片。
url = 'https://pixabay.com/images/search/cat/'
folder_path = 'pixabay'
if not os.path.exists(folder_path):
os.makedirs(folder_path)
download_all_images(url, folder_path)
运行此代码会在当前目录下创建名为“pixabay”文件夹,并下载Pixabay网站上与猫有关的所有图片到该文件夹中。
示例二:下载指定网址所有图片
以下示例演示如何使用上述函数下载指定网址所有图片。
url = 'https://www.baidu.com/'
folder_path = 'baidu'
if not os.path.exists(folder_path):
os.makedirs(folder_path)
download_all_images(url, folder_path)
运行此代码会在当前目录下创建名为“baidu”文件夹,并下载百度网站上所有图片到该文件夹中。
以上就是使用Python实现下载指定网址所有图片的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现下载指定网址所有图片的方法 - Python技术站