Python模式requests+BeautifulSoup实现的SVG素材爬虫工具
本帖最后由 转瞬 于 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]
#发送http请求获取网页数据
with requests.get(col1) as response:
#请求成功时的状态
if response.status_code==200:
#将数据加载到BeautifulSoup中
soup = BeautifulSoup(response.text) #,"lxml"
#获取文档树中的某一个标签
svg_tag=soup.select("a.svg_db")
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()
最终获取的文件内容如下:
欢迎和我一起讨论:鹅群【954092621】
本帖最后由 taifyx7986 于 2021-4-9 19:25 编辑
面对网络上海量的素材,一个一个下载的话,会很耗费时间。这个时候我们就可以使用Mind+提供的Python编程模式
上海快3https://1680380.com/view/kuai3_shft/kuai3_index.html
体彩排列5https://1680380.com/view/tcpl5/index.html
很棒的案例,果断收藏 gray6666 发表于 2021-4-12 08:47
很棒的案例,果断收藏
开心{:5_131:}
页:
[1]