Python模式requests+BeautifulSoup实现的SVG素材爬虫工具

2021-04-082万
AI 快速预览详细 收起
本文介绍了如何使用Python的requests和BeautifulSoup库编写一个网络爬虫工具,用于批量下载SVG素材。通过简单的10多行代码,可以快速获取大量图片素材,无需美术基础,特别适合STEM教育场景中的学生使用。具体的步骤包括读取CSV文件、发送HTTP请求、解析网页内容并下载SVG文件。这个工具极大地提升了项目开发的效率,让编程变得更加便捷。


用Mind+做一个应用的时候,我们会用到各种各样的精灵图,但是对于不擅长美术的同学,就会卡壳。幸运的是,网络上有很多的网站提供免费的素材。
面对网络上海量的素材,一个一个下载的话,会很耗费时间。
这个时候我们就可以使用Mind+提供的Python编程模式,开发一个网络爬虫工具,快速的帮我们获取网络上海量的图片素材。

下面的代码仅仅10多行,就可以实现一个网站上的网络图片的下载与保存。
具体的代码注释都有了,有疑问可以留言交流。
  1. #pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。
  2. #Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
  3. #pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
  4. import pandas as pd
  5. #Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。
  6. #它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。
  7. import requests
  8. #BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库
  9. from bs4 import BeautifulSoup
  10. header = {
  11.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
  12. }
  13. def main():
  14.     print("程序启动,抓取动物svg素材任务开始")
  15.     #设置sep参数,可以替换分割用的符号;header指定另一行作为标题,没有表头:None
  16.     #读取CSV文件
  17.     file = pd.read_csv('你自己的文件路径/svg_sucai.csv', sep=',', header=0)
  18.     #DataFrame是一个以命名列方式组织的分布式数据集。
  19.     df = pd.DataFrame(file)
  20.     for i in range(1,50):#len(df)
  21.         #读取某一行中的某几列数据
  22.         col1 = df.loc[i,['web-scraper-start-url','animal']]
  23.         #发送http请求获取网页数据
  24.         with requests.get(col1[1]) as response:
  25.             #请求成功时的状态
  26.             if response.status_code==200:
  27.                 #将数据加载到BeautifulSoup中
  28.                 soup = BeautifulSoup(response.text) #,"lxml"
  29.                 #获取文档树中的某一个标签
  30.                 svg_tag=soup.select("a.svg_db")[1]
  31.                 print("%d:%s" %(i,svg_tag.attrs["title"]))
  32.                 #下载数据并保存文件
  33.                 with open("你自己的文件路径/%s.svg" %(svg_tag.attrs["title"]), "wb") as f:
  34.                     with requests.get(svg_tag.attrs["href"], timeout=600, verify=False) as r:  # True表示使用证书验证
  35.                         f.write(r.content)
  36.                         #break #测试使用                        
  37.     print("程序结束,抓取动物svg素材任务完成")
  38. #当**.py**文件被直接运行时,if __name__ ==’__main__'之下的代码块将被运行;
  39. #当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
  40. if __name__ == '__main__':
  41.     main()
复制代码



最终获取的文件内容如下:
Python模式requests+BeautifulSoup实现的SVG素材爬虫工具图1


欢迎和我一起讨论:鹅群【954092621】

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
gray6666
gray6666
很棒的案例,果断收藏
转瞬
转瞬
作者
回复gray6666
开心
taifyx7986
taifyx7986
面对网络上海量的素材,一个一个下载的话,会很耗费时间。这个时候我们就可以使用Mind+提供的Python编程模式[font=SimSun] [/font]
[align=left][font=SimSun][font=SimSun]上海快[/font][font=Arial]3https://1680380.com/view/kuai3_shft/kuai3_index.html[/font][/font][/align]
[align=left][font=SimSun][font=SimSun]体彩排列[/font][font=Arial]5https://1680380.com/view/tcpl5/index.html[/font][/font][/align]
- 没有更多了 -