一个简单的python爬虫

1.检查本机是否安装python环境

python --version

2.安装所需库:该代码使用了 requests 库。如果你还没有安装,可以使用以下命令安装:

pip install requests

3.创建 Python 文件: 打开文本编辑器(如 VS Code、记事本),将代码复制粘贴进去,并保存为 download_images.py。

4.在终端中运行: 打开终端,导航到保存文件的目录,并运行以下命令:

python download_images.py

5.查看下载的图片: 代码执行后,检查当前目录下的 彼岸图网图片获取 文件夹,你应该能看到下载的图片。

附上源码

import requests
import re
import os

# 清理文件名的函数
def clean_filename(name):
    """
    替换文件名中的不合法字符为下划线。
    这些字符包括:<, >, :, ", /, \, |, ?, *
    """
    return re.sub(r'[<>:"/\\|?*]', '_', name)  # 使用正则表达式进行替换

url = "https://pic.netbian.com/"  # 目标网页的 URL
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
}  # 请求头,模拟浏览器访问

# 发送 GET 请求获取网页内容
response = requests.get(url=url, headers=headers)
response.encoding = response.apparent_encoding  # 设置编码格式

# 正则表达式:匹配图片链接和图片名称
parr = re.compile(r'src="(/u.*?\.jpg)".*?alt="(.*?)"')
image = re.findall(parr, response.text)  # 提取所有匹配的链接和名称

path = "彼岸图网图片获取"  # 创建的文件夹名称
if not os.path.isdir(path):  # 判断文件夹是否存在
    os.mkdir(path)  # 如果不存在,则创建文件夹

# 遍历提取到的图片链接和名称
for i in image:
    link = i[0]  # 获取图片链接
    name = clean_filename(i[1])  # 获取并清理图片名称
    try:
        # 以二进制写入模式打开文件
        with open(os.path.join(path, f"{name}.jpg"), "wb") as img:
            res = requests.get("https://pic.netbian.com" + link)  # 发送请求获取图片
            res.raise_for_status()  # 检查请求是否成功
            img.write(res.content)  # 将图片内容写入文件
        print(f"{name}.jpg 获取成功······")  # 输出成功信息
    except Exception as e:
        print(f"获取 {name}.jpg 时出错: {e}")  # 输出错误信息

 备注:

正则表达式解析
  • r'src="(/u.*?\.jpg)":

    • src=":匹配字符串 src=",这是 HTML 中 img 标签的属性,表示图片的链接。
    • (/u.*?\.jpg)
      • /u:匹配以 /u 开头的字符串,通常表示图片的路径。
      • .*?:表示匹配任意字符(除了换行符),零次或多次。? 使其变为非贪婪匹配,即尽可能少地匹配字符。
      • \.jpg:匹配以 .jpg 结尾的字符串,前面的 \ 是转义符,表示字面上的点号。
  • .*?alt="(.*?)"

    • .*?:非贪婪匹配,表示在 alt=" 之前可能有任意字符。
    • alt=":匹配字符串 alt=",这是 HTML 中 img 标签的另一个属性,表示图片的描述文本。
    • (.*?)
      • 这部分匹配 alt 属性中的内容,非贪婪匹配,尽可能少地匹配字符。
      • 圆括号 () 表示一个捕获组,捕获的内容可以在后续处理中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值