python 爬图片

本文介绍了一个Python爬虫程序,用于从特定网站抓取胡桃相关的图片。首先,通过requests库获取网页内容,然后使用正则表达式匹配图片URL。接着,将图片保存到本地,同时检查文件是否已存在,避免重复下载。代码中详细注释了每个步骤,适合初学者学习爬虫基础知识。

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


活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…


欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

**

直接上干货
目标爬去网站 胡桃的图片
网站:https://anime-pictures.net/pictures/view_posts/0?search_tag=%E8%83%A1%E6%A1%83&order_by=date&ldate=0&lang=zh_CN

先检索文件图片路径
在这里插入图片描述
上代码

# -- coding:UTF-8 --
import requests
from bs4 import BeautifulSoup
from lxml import etree
import os
import re
'''
思路:获取网址
通过XPTH获取图片列表
再用xpth筛选有用信息
      获取图片地址
      爬取图片并保存
'''


# 获取网址
def getUrl(url):
    try:
        read = requests.get(url)  # 获取url
        read.raise_for_status()  # 状态响应 返回200连接成功
        read.encoding = read.apparent_encoding  # 从内容中分析出响应内容编码方式
        return read.text  # Http响应内容的字符串,即url对应的页面内容
    except:
        return "连接失败!"

def getPic(html):
    kl = re.compile(r'src="(.+?jpg)"')
    sl = re.findall(kl,html)
    for img in sl:
        src = 'https:'+img  # 获取img标签里的src内容
        img_url = src
        print(img_url)
        root = "D:\hutao"  # 保存的路径
        path = root + img_url.split('/')[-1]  # 获取img的文件名
        print(path)
        try:
            if not os.path.exists(root):  # 判断是否存在文件并下载img
                os.mkdir(root)
            if not os.path.exists(path):
                read = requests.get(img_url)
                with open(path, "wb")as f:
                    f.write(read.content)
                    f.close()
                    print("文件保存成功!")
            else:
                print("文件已存在!")
        except:
            print("文件爬取失败!")


# 主函数
if __name__ == '__main__':
    html_url = getUrl("https://anime-pictures.net/pictures/view_posts/0?search_tag=%E8%83%A1%E6%A1%83&order_by=date&ldate=0&lang=zh_CN")
    getPic(html_url)

在这里插入图片描述
在这里插入图片描述
请添加图片描述

提醒:在发布作品前请把不用的内容删掉(活动地址请保留)

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

### 使用Python编写的爬虫抓取图片 为了实现使用Python编写爬虫来抓取网页上的图片,可以遵循一系列特定的方法和技术。准备工作包括安装必要的库,如`requests`用于发送HTTP请求以及`BeautifulSoup`或`lxml`解析HTML文档[^1]。 #### 安装依赖包 首先需要确保环境中已经安装了所需的第三方库: ```bash pip install requests beautifulsoup4 lxml ``` #### 编写基本框架 创建一个简单的Python脚本来构建基础架构,该结构能够访问目标网站并提取页面中的图像链接。 ```python import os from urllib.parse import urljoin, urlparse import requests from bs4 import BeautifulSoup def download_image(url, folder_path='images'): """下载单张图片""" try: response = requests.get(url) if not os.path.exists(folder_path): os.makedirs(folder_path) file_name = os.path.join(folder_path, os.path.basename(urlparse(url).path)) with open(file_name, 'wb') as f: f.write(response.content) print(f'Successfully downloaded {file_name}') except Exception as e: print(e) def fetch_images_from_page(page_url): """从给定URL中获取所有img标签对应的src属性值即为图片地址列表""" html_content = requests.get(page_url).text soup = BeautifulSoup(html_content, "html.parser") img_tags = soup.find_all('img') image_urls = set() # 去重 for tag in img_tags: src = tag.get('src', '') full_src = urljoin(page_url, src) # 处理相对路径 if full_src.startswith(('http://', 'https://')): image_urls.add(full_src) return list(image_urls) if __name__ == '__main__': page_to_scrape = input("Enter the URL of a website to scrape images from:") urls = fetch_images_from_page(page_to_scrape) for u in urls: download_image(u) ``` 这段代码定义了一个名为 `fetch_images_from_page()` 的函数用来查找指定网页内的所有 `<img>` 标签,并返回它们的源(`src`)属性组成的集合;另一个辅助性的方法叫做 `download_image()` ,它接收一个完整的图片链接作为参数并将文件保存到本地磁盘上。 请注意,在实际应用过程中还需要考虑更多因素比如异常处理、反机制规避策略等,上述例子仅提供最简化版本供学习交流之用[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FODKING

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值