网页图片URL的抓取和下载

暮色 发布于 2023-01-11 1149 次阅读


//前言:首先每个网站图片的URL都是差不多的,一般都是img元素储存着src路径,所以只要读取网页中img中的src路径中的链接即可这里使用py演示

前提:使用下面代码需要安装python,同时安装对应的库

1.图片的url的抓取

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

url = '网站地址页面'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
img_tags = soup.find_all('img')
for img in img_tags:
    img_url = urljoin(url, img['src'])
    print(img_url)

这段代码可以将网页中的图片url提取并打印出,只要复制就可以获取网页所有的图片url

2.图片的下载保存

import requests
import os
from bs4 import BeautifulSoup
from urllib.parse import urljoin

url = '网页链接'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
img_tags = soup.find_all('img')

# 设置保存图片的路径
save_path = '你的文件夹位置'
# 判断保存路径是否存在,如果不存在就创建
if not os.path.exists(save_path):
    os.makedirs(save_path)

for img in img_tags:
    # 使用 urljoin 函数将相对路径拼接成绝对路径
    img_url = urljoin(url, img['src'])
    # 获取图片文件名
    img_name = os.path.basename(img_url)
    # 下载图片
    img_data = requests.get(img_url).content
    # 保存图片到本地
    with open(f'{save_path}/{img_name}', 'wb') as f:
        f.write(img_data)
    print(f'下载并保存图片: {img_name}')

这段代码就可以将网页中的图片下载下来并保存到你设定的文件夹里。

但是注意以上仅适用与将真实图片路径写在src里面的,如果加了其他的防盗就无法获取到真实的图片地址

3.图片的批量获取url链接

import requests
from urllib.parse import urlparse
from bs4 import BeautifulSoup
from urllib.parse import urljoin

inFile = input("请输入读取的文件路径")
outFile = input("请输入写入的文件路径")
with open(inFile, "r") as fIn:
    with open(outFile, "w") as fOut:
        urls = fIn.readlines()
        for url in urls:
            uri = urlparse(url)
            resp = requests.get(url)
            soup = BeautifulSoup(resp.text, 'html.parser')
            img_tags = soup.find_all('img')
            for img in img_tags:
                img_url = urljoin(f"{uri.scheme}://{uri.netloc}/", img['src'])
                fOut.write(img_url + "\n")

图片分享

此作者没有提供个人介绍。
最后更新于 2023-01-11