import requests
from bs4 import BeautifulSoup
import os

def download(url):
    res = requests.get(url)   # 图片是二进制编写的,放在 content 里面
    img_data = res.content
    filename = os.path.join('img1', url.split('/')[-1])
    if not os.path.exists(filename):
        with open(filename, 'wb') as f:   # 以二进制格式打开文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
            f.write(img_data)

def get_html():
    for i in range(3, 20):  # 获取第 2 到 19 页的图片
        url = f'http://www.netbian.com/index_{i}.htm'
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'}
        res = requests.get(url, headers=headers)
        res.encoding = 'gbk' # 解码
        if res.status_code == 200:  # 判断是不是空。404 错的
            html = res.text    # 可以打印 html 排队是不是乱码
            soup = BeautifulSoup(html, 'lxml')   # 文本文件
            all_list = soup.find(class_='list')
            all_imgs = all_list.find_all('img')
            if not os.path.exists('img1'):
                os.makedirs('img1')
            for img in all_imgs:
                src = img['src']
                download(src)

if __name__ == '__main__':
    get_html()  

该代码实现了一个简单的图片爬虫,从 www.netbian.com 网站下载图片。代码使用了 requests 库获取网页内容,BeautifulSoup 解析 HTML 结构,并使用 os 库创建文件夹和保存图片。

代码功能:

  1. 获取网页内容: 使用 requests 库获取指定网页的 HTML 内容,并使用 gbk 解码。
  2. 解析 HTML 结构: 使用 BeautifulSoup 库解析 HTML 结构,找到所有包含图片的标签。
  3. 下载图片: 循环遍历所有图片标签,获取图片的 URL 地址,并使用 requests 库下载图片到本地。
  4. 创建文件夹: 如果 'img1' 文件夹不存在,则创建该文件夹。
  5. 保存图片: 将下载的图片保存到 'img1' 文件夹下,文件名使用图片 URL 地址的最后部分。

使用方法:

  1. 安装必要的库:pip install requests beautifulsoup4
  2. 运行代码:python your_script_name.py

注意:

  • 请尊重网站的 robots.txt 文件,不要过度频繁地访问网站,以免造成服务器压力。
  • 请勿使用该代码进行任何非法活动。

更多功能:

  • 可以添加错误处理,例如当网页无法访问或图片无法下载时进行处理。
  • 可以根据需要修改代码,例如下载特定类型的图片或保存到不同的文件夹。

希望这份代码能够帮助你学习 Python 爬虫的基本原理。

Python 图片爬虫:从 www.netbian.com 下载图片

原文地址: http://www.cveoy.top/t/topic/fR7j 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录