用 requests-bs4 爬取网络图片

本文介绍了一个简单的Python爬虫程序实现过程,该程序能够从指定网站抓取图片资源。具体步骤包括:发送HTTP请求获取网页源码,使用BeautifulSoup解析网页并提取图片链接,最后下载图片并保存到本地文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网页地址:http://www.mm131.com/qingchun/

这里写图片描述

简单一点,我们只需得到 img 标签的 src 属性,即图片的地址

这里写图片描述

示例代码

**主要步骤**
1、获取网页数据
2、解析网页数据,得到所需的图片地址
3、根据图片地址下载图片,将图片保存到文件中
# CrawBeaGirlImage.py

import requests
import os
from bs4 import BeautifulSoup

# url 请求网页数据
def getHtmlText(url, code):
    try:
        r = requests.get(url)
        r.encoding = code
        r.raise_for_status()
        return r.text
    except:
        return ''

# 解析网页,返回所需数据
def parseHtml(images, url):
    html = getHtmlText(url, 'utf-8')
    soup = BeautifulSoup(html, 'lxml')
    imgs = soup.find_all('img')
    for i in range(len(imgs)):
        try:
          images.append(imgs[i].attrs['src'])
          print(imgs[i].attrs['src'])
        except:
          print('')
# 根据图片的 url 下载图片,然后存储到文件中
def storeImages(images):
    root = '/Users/xiaolian/images/' 
    if not os.path.exists(root):
        os.mkdir(root) # 文件夹不存在则创建一个文件夹
    for i in range(len(images)):
        # 图片的名字选的简单点 就用数字
        path = root + str(i) + '.jpg'
        try:
            r = requests.get(images[i])
            r.encoding = 'utf-8'
            # 模式记得要加上 b,使文件以 2 进制模式打开, 否则会报错 TypeError: write() argument must be str, not bytes
            with open(path, 'wb') as f:
                f.write(r.content)
                f.close()
                print('文件保存成功')
        except:
            continue
            print('图片保存失败')

def main():
    url = '''http://www.mm131.com/'''
    images = []
    parseHtml(images, url)
    storeImages(images)

if __name__ == '__main__':
    main()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值