本帖最后由 转瞬 于 2021-4-9 12:44 编辑
用Mind+做一个应用的时候,我们会用到各种各样的精灵图,但是对于不擅长美术的同学,就会卡壳。幸运的是,网络上有很多的网站提供免费的素材。
面对网络上海量的素材,一个一个下载的话,会很耗费时间。
这个时候我们就可以使用Mind+提供的Python编程模式,开发一个网络爬虫工具,快速的帮我们获取网络上海量的图片素材。
下面的代码仅仅10多行,就可以实现一个网站上的网络图片的下载与保存。
具体的代码注释都有了,有疑问可以留言交流。
- #pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。
- #Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
- #pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
- import pandas as pd
- #Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。
- #它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。
- import requests
- #BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库
- from bs4 import BeautifulSoup
-
- header = {
- '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'
- }
-
- def main():
- print("程序启动,抓取动物svg素材任务开始")
- #设置sep参数,可以替换分割用的符号;header指定另一行作为标题,没有表头:None
- #读取CSV文件
- file = pd.read_csv('你自己的文件路径/svg_sucai.csv', sep=',', header=0)
- #DataFrame是一个以命名列方式组织的分布式数据集。
- df = pd.DataFrame(file)
- for i in range(1,50):#len(df)
- #读取某一行中的某几列数据
- col1 = df.loc[i,['web-scraper-start-url','animal']]
- #发送http请求获取网页数据
- with requests.get(col1[1]) as response:
- #请求成功时的状态
- if response.status_code==200:
- #将数据加载到BeautifulSoup中
- soup = BeautifulSoup(response.text) #,"lxml"
- #获取文档树中的某一个标签
- svg_tag=soup.select("a.svg_db")[1]
- print("%d:%s" %(i,svg_tag.attrs["title"]))
- #下载数据并保存文件
- with open("你自己的文件路径/%s.svg" %(svg_tag.attrs["title"]), "wb") as f:
- with requests.get(svg_tag.attrs["href"], timeout=600, verify=False) as r: # True表示使用证书验证
- f.write(r.content)
- #break #测试使用
- print("程序结束,抓取动物svg素材任务完成")
-
- #当**.py**文件被直接运行时,if __name__ ==’__main__'之下的代码块将被运行;
- #当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
- if __name__ == '__main__':
- main()
复制代码
最终获取的文件内容如下:
![Python模式requests+BeautifulSoup实现的SVG素材爬虫工具图1](https://mc.dfrobot.com.cn/data/attachment/forum/202104/08/235703i5y0xy3qvz4noxtx.png)
欢迎和我一起讨论:鹅群【954092621】
|
|
|
|
|
|