《爬虫》爬取页面图片并保存

这篇具有很好参考价值的文章主要介绍了《爬虫》爬取页面图片并保存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


title: 《小·意·思》爬取页面图片并保存
date: 2023-08-10 22:12:30
updated: 2023-08-29 17:07:55
categories: 番外:小·意·思
excerpt: 上下标号、标点、运算符、标号、时间相关、语言、货币、音乐、形状符号、其他符号。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png



简单的爬取图片

前言

这几天打算整理与迁移一下博客。因为 CSDN 的 Markdown 编辑器很好用 ,所以全部文章与相关图片都保存在 CSDN。而且 CSDN 支持一键导出自己的文章为 markdown 文件。但导出的文件中图片的连接依旧是 url 连接。为了方便将图片保存到本地,在这里保存一下爬虫代码。

只要修改正则匹配代码,同样适用于博客园爬取。

代码

为了提高效率,该脚本将从保存的本地 markdown 文件读取图片链接。当然脚本中也保留了爬取某个页面所有图片的函数。

脚本名:spider.py

import urllib.request 
import urllib.parse
import sys
import os
import re 


def open_url(url):
    '''
    用于网页爬取。这里不采用这个函数
    '''
    req = urllib.request.Request(url) 
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0')
    # 访问url,并将页面的二进制数据赋值给 page
    page = urllib.request.urlopen(req)
    # 将page中的内容转换为utf-8编码
    html = page.read().decode('utf-8')

    return html


def read_file(file):
    print('\n正在读取文件...')
    with open(file, 'rb') as my_file:
        content = my_file.read()
        content = content.decode('utf-8')

    print('已读取文件.')

    return content


def get_img(content, file_path):

    # 正则匹配图片链接
    # p=r'<img src="([^"]+\.png)"'  # 可用于网页爬取
    p=r'https://img-blog\.csdnimg\.cn/[\w\-/]+\.(?:png|jpg|jpeg)'

    #返回正则表达式在字符串中所有匹配结果的列表
    print('\n正在读取图片链接...')
    img_list=re.findall(p, content)
    list_len = str(len(img_list))
    print('已读取图片链接.\n')

    for img_url in img_list:
        print(img_url)
    print('\n共 ' + list_len + ' 条数据')

    # 图片保存位置。如果文件夹不存在则创建
    save_path = file_path + '/assets/'

    if not os.path.exists(save_path):
        os.makedirs(save_path)

    print('\n正在保存图片...\n')
    num = 0  # 用于记录进度
    for each in img_list:
        #以 / 为分隔符,-1返回最后一个值
        photo_name=each.split("/")[-1]

        #访问 each,并将页面的二进制数据赋值给photo
        photo=urllib .request .urlopen(each)

        w=photo .read()

        # f=open(save_path + photo_name + '.png', 'wb')
        f=open(save_path + photo_name, 'wb')
        f.write(w)
        f.close()

        # 展示进度
        print(num % 10, end="")
        if (num + 1) % 10 == 0 and num != 0:
            print('    进度: ' + str(num + 1) + '/' + list_len)
        sys.stdout.flush()  # 刷新输出缓冲
        num += 1

    print('\n\n完成!\n')


if __name__=='__main__':
    if len(sys.argv) != 2:
        print("\nUsage:   python spider.py <file>")
        print('example: python spider.py "F:\\T\\test.md"')
        sys.exit()

    file = str(sys.argv[1])

    file_name = os.path.basename(file)
    file_path = os.path.dirname(file)
    print('\nfile_name: ' + file_name)
    print('file_path: ' + file_path)

    # 读取文件内容
    content = read_file(file)

    # 爬取图片
    get_img(content, file_path)

效果

《爬虫》爬取页面图片并保存,小·意·思,爬虫

《爬虫》爬取页面图片并保存,小·意·思,爬虫


别后相思人似月,云间水上到层城。

——《明月夜留别》(唐)李冶 文章来源地址https://www.toymoban.com/news/detail-638784.html

到了这里,关于《爬虫》爬取页面图片并保存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫 爬取图片

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。 我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过

    2024年02月13日
    浏览(56)
  • Python爬虫-爬取文档内容,如何去掉文档中的表格,并保存正文内容

    前言 本文是该专栏的第58篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,可能或多或少爬取过文档数据,比如说“政务网站,新闻网站,小说网站”等平台的文档数据。爬取文档数据,笔者这里就不过多详述,而本文, 笔者将主要介绍在爬取文档

    2024年02月08日
    浏览(52)
  • python爬虫 爬取网页图片

    目录 一:爬虫基础 二:安装html解析的python工具 三:爬取网页图片 爬虫基本过程: 1.请求标头 headers 2.创建一个会话 requests.Session 3.确定请求的路径 4.根据路径获取网页资源(HTML文件) 5.解析html文件BeautifulSoup div a 标签 获取对应的图片 6.建立网络连接进行下载  创建出下载的图

    2024年02月02日
    浏览(57)
  • 网络爬虫丨基于scrapy+mysql爬取博客信息并保存到数据库中

    本期内容 :基于scrapy+mysql爬取博客信息并保存到数据库中 实验需求 anaconda丨pycharm python3.11.4 scrapy mysql 项目下载地址:https://download.csdn.net/download/m0_68111267/88740730 本次实验实现了:使用Scrapy框架爬取博客专栏的目录信息并保存到MySQL数据库中,实验主要涉及到Python的爬虫技术以

    2024年01月17日
    浏览(44)
  • 爬虫实例(二)—— 爬取高清4K图片

    大家好,我是 Enovo飞鱼,今天继续分享一个爬虫案例,爬取高清4K图片,加油💪。     目录 前言 增加异常处理 增加代码灵活性 基本环境配置 爬取目标网站 分析网站页面 具体代码实现 图片下载示例 感谢支持🙇‍+👍     上篇内容,我们已经了解并惊叹于5行Python代码的强

    2024年02月21日
    浏览(117)
  • Python爬虫入门之2022软科中国大学排名爬取保存到csv文件

    1、获得“2022软科中国大学排名”数据,从【软科排名】2022年最新软科中国大学排名|中国最好大学排名网页中获得排名数据信息,并将数据保存到csv文件中。 2、调用两个CSV文件,将他们合成一个文件,并按排名先后对其进行排序 3、将合并文件储存为txt文件和json文件 我们采

    2024年02月07日
    浏览(51)
  • Java爬虫爬取图片壁纸

    以 sougou 图片为例: https://pic.sogou.com/ JDK17、SpringBoot3.2.X、hutool5.8.24实现Java爬虫,爬取页面图片 开发工具: IDEA2023.2.5 JDK: Java17 SpringBoot: 3.2.x 通过 SpringBoot 快速构建开发环境,通过 Jsoup 实现对网页的解析,并获取想要的资源数据 使用 hutool 工具,将所需要的字符串转成 J

    2024年01月17日
    浏览(43)
  • Python爬虫入门系列之Selenium实现动态页面爬取

    在前一篇博客中,我们学习了如何使用多线程优化爬虫程序。但是,如果要爬取的网页是动态生成的或者包含大量JavaScript代码,单纯的静态页面爬取就不足够了。为了解决这个问题,我们可以使用Selenium库来模拟真实的浏览器行为,从而实现动态页面的爬取。 Selenium是一个用

    2024年02月11日
    浏览(54)
  • Python爬取读书网的图片链接和书名并保存在数据库中

    一个比较基础且常见的爬虫,写下来用于记录和巩固相关知识。 本项目采用 scrapy 框架进行爬取,需要提前安装 由于需要保存数据到数据库,因此需要下载 pymysql 进行数据库相关的操作 同时在数据库中创立对应的表 在终端进入准备存放项目的文件夹中 1、创建项目 创建成功

    2024年02月06日
    浏览(39)
  • python-爬虫-xpath方法-批量爬取王者皮肤图片

    球员:乔尔-恩比德 - - - 球队:76人 球员:卢卡-东契奇 - - - 球队:独行侠 球员:达米安-利拉德 - - - 球队:开拓者 爬取一张图片 该角色有7个皮肤 爬取7个图片 获取这7个皮肤的名字 保存图片 获取所有英雄皮肤 把该行网址复制到网址栏,会自动下载该文件 https://pvp.qq.com/web20160

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包