博客
关于我
python爬虫beautifulsoup4系列3
阅读量:470 次
发布时间:2019-03-06

本文共 1736 字,大约阅读时间需要 5 分钟。

如何爬取网站图片并将其保存到本地电脑

前言

本文将教你如何利用Python的BeautifulSoupRequests库,从网页上抓取图片,并将其保存到本地电脑中。通过简单易懂的步骤,你将能够轻松实现图片的批量下载。


目标网站

首先,我需要选择一个合适的目标网站。为了演示方便,我选择了699pic.com上的风景图片页面:http://699pic.com/sousuo-218808-13-1.html

接下来,我需要使用工具来定位图片的位置。推荐使用FirebugChrome DevTools,通过这些工具可以快速定位图片的位置。

从开发者工具中可以看到,图片的加载方式是通过<img>标签加载的,并且图片的class属性为"lazy"。这一点非常重要,因为它将帮助我定位所有图片。


找出图片标签

在已知图片的class属性为"lazy"的情况下,我可以使用BeautifulSoup库来抓取所有的图片标签。

  • 首先导入必要的库:

    from bs4 import BeautifulSoupimport requestsimport os
  • 使用requests库获取目标页面的内容:

    r = requests.get("http://699pic.com/sousuo-218808-13-1.html")fengjing = r.content
  • 使用BeautifulSoup解析页面内容:

    soup = BeautifulSoup(fengjing, "html.parser")
  • 找出所有class"lazy"的图片标签:

    images = soup.find_all(class_="lazy")

    这一步将返回所有图片标签的对象列表。


  • 保存图片

    接下来,我需要将这些图片下载到本地电脑中。

  • 在当前脚本文件夹下创建一个"jpg"的子文件夹:

    os.makedirs("jpg")
  • 使用os.getcwd()获取当前脚本的路径:

    current_path = os.getcwd()
  • 为每张图片指定一个唯一的存储路径。为了避免命名重复,我将使用图片的标题作为文件名:

    with open(os.path.join(current_path, "jpg", title + ".jpg"), "wb") as f:    f.write(requests.get(jpg_rl).content)

    这里,title是图片的标题,jpg_rl是图片的URL地址。


  • 参考代码

    以下是一个完整的代码示例,展示了从网页上抓取图片并将其保存到本地的完整流程:

    from bs4 import BeautifulSoupimport requestsimport os# 获取目标页面的内容r = requests.get("http://699pic.com/sousuo-218808-13-1.html")fengjing = r.content# 解析页面内容soup = BeautifulSoup(fengjing, "html.parser")# 找出所有图片标签images = soup.find_all(class_="lazy")# 遍历每一张图片for i in images:    try:        # 提取图片的URL地址        jpg_rl = i["data-original"]                # 提取图片的标题        title = i["title"]                # 下载图片并保存到本地        with open(os.path.join(os.getcwd() + "\\jpg\\" + title + ".jpg"), "wb") as f:            f.write(requests.get(jpg_rl).content)    except:        pass

    总结

    通过以上步骤,你已经掌握了如何从网页上抓取图片并将其保存到本地电脑中。这个方法简单易懂,适合对Python编程有一定基础的用户使用。希望你在实践中能取得好成绩!

    转载地址:http://hymbz.baihongyu.com/

    你可能感兴趣的文章
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>
    npm错误 gyp错误 vs版本不对 msvs_version不兼容
    查看>>
    npm错误Error: Cannot find module ‘postcss-loader‘
    查看>>
    npm,yarn,cnpm 的区别
    查看>>
    NPOI
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>
    NPOI将某个程序段耗时插入Excel
    查看>>
    NPOI格式设置
    查看>>
    NPOI设置单元格格式
    查看>>
    Npp删除选中行的Macro录制方式
    查看>>
    NR,NF,FNR
    查看>>
    nrf24l01+arduino
    查看>>
    nrf开发笔记一开发软件
    查看>>
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>