当前位置:网站首页>【MATLAB】基于油猴脚本和MATLAB下载原创力文档
【MATLAB】基于油猴脚本和MATLAB下载原创力文档
2022-07-19 11:09:00 【记录无知岁月】
前言
最近在油猴找到一个脚本,挺有意思,它能够下载那些允许预览的文档,这个到是很常见的一种脚本,其原理大概就是自动截图得到图片,然后给你合成PDF文档。这也就是为什么只能下载那些能够预览的文档。
但是这个脚本有意思的地方在于,它就是不给你提供最后一步,只给你一个包含文档所有照片的链接,我猜它应该是将这些下载的图片上传到某个图床了,然后把它的图床链接汇总到一个表格中,至于为什么不做最后下载图片到本地这最后一步咱也不知道,也不敢议论大佬的想法,总之,这个脚本用起来很不方便。
于是就有了本篇博客,试图用 “除了生孩子其他没什么不会” 的MATLAB来解决 “最后一公里” 。
代码展示
%GETPICTURE 打开一个包含图片链接的Excel表格,并下载对应的图片
function getpicture(filename) %输入的filename为表格的绝对路径
expression = '\w*\.csv$'; %正则表达式,用于去除最后一级文件名
end_pos = regexp(filename, expression, 'start'); %得到截止的位置
path = extractBefore(filename, end_pos); %保留截止位置前的路径——上一级路径
out_path = strcat(path, 'pic_out'); %设定输出图片的路径,和原文件保持同一目录,名字可自定义
mkdir(out_path); %得先创建这个路径,因为imwrite函数不支持创建不存在的文件夹
[~, txt, ~] = xlsread(filename); %读取文件,保留字符串
for i = 1:length(txt) %遍历所有链接
pic = webread(txt{
i}); %将图片下载下来
pic_path = strcat(out_path, '\', num2str(i), '.png'); %确定图片的路径及命名
imwrite(pic, pic_path); %保存图片
fprintf("已下载%d张图片\n", i); %显示进度用
end
fprintf("下载完毕\n");
end
代码里面注释已经写得非常明白了,感觉有MATLAB基础的基本能够看懂,最后实现的效果就是在表格对应的路径下创建了一个pic_out的文件夹,里面存放下载下来的图片,如下图所示。
另外,得到的表格文件如下图所示。
pic_out文件夹中如下图所示。
函数汇总
这里为方便起见,简单汇总一下使用到的一些函数,具体用法查看帮助文档。
regexp
——用来匹配正则表达式out = regexp(str, expression, outkey)
返回 outkey 指定的输出。例如,如果 outkey 为'match'
,则regexp
返回与该表达式匹配的子字符串而非其开始索引。outkey通常的取值有:
附:参考链接 具体用法建议看帮助文档,这个链接的博客也是来自于帮助文档。
extractBefore
——获取字符串自某个位置前的字符子串
MATLAB中常用的字符串处理函数可以看看这个官方链接。
这里需要补充一点的就是xlsread函数得到的cell类型的数据更多体现的是一个数据形式,其数据格式(string,double,int)还是取决于文件内容。比如设置了txt输出之后,那么就能读取到表格中的字符串,只是在使用数据时格式要正确,要根据cell类型使用{}。
strcat
——连接字符串,和上面那个一样,也是字符串处理函数webread
——读取网页数据的函数
最开始想要在MATLAB中找一个可以下载在线图片的函数,找到了urlwrite
函数,打开其帮助文档,发现它不推荐使用这个函数,而是推荐使用webwrite
和webread
,这里由于是下载,所以使用的是webread
,然后根据帮助文档给出的案例进行探索即可。imwrite
——将图片数据保存到本地
使用webread
得到的图片数据实际上是图片的二进制码,如果想要自己查看,可以使用imshow
函数,如果需要保存到本地,那就要用到imwrite
函数了,但是这里有一个问题就是imwrite
似乎不能写入一个不存在的路径(它不能自己创建路径),会报错没有权限 。所以在使用imwrite
函数前,先用mkdir
创建一个路径。
边栏推荐
- 火爆各平台的拼团功能,宝子们在多商户系统中玩过吗?
- 0718-棉花棉纱涨停,市场大幅反弹
- 2021 年6月面试遭遇滑铁卢,现在这么内卷了吗
- Web: compiling big refactoring from 10 to 1
- 各位大佬,请问怎么把flink sql打印到控制台的结果完全展示呢?
- 华为占据折叠手机市场半数份额,证明它在高端市场的地位无可替代
- Cooperatively Coevolving Particle Swarms forLarge Scale Optimization
- Detailed explanation of Android interview hash principle II
- Shangmultiplier Kemei IPO: market value of US $3billion Cai Zhijian gains the second listed company
- 扎心了!16岁女生被骗3万后不服气又被骗5万
猜你喜欢
随机推荐
openpcdet之pointpillar代码阅读——第三篇:损失函数的计算
字符函数和字符串函数(二)
[depth] the new LAAS agreement elephant: the key to revitalizing the development of the defi track
mouseenter 与 mouseover 的区别
oracle查看执行最慢与查询次数最多的sql语句
你好,想请教关于c#和数据库操作方面的问题。
[cann training camp] brief introduction the format of general target recognition data after decoding is customized from yuv420sp nv12 to yuv420sp nv21
IPhone 14 Max production progress lags behind: or affect the delivery ratio of the first batch of products
arm反汇编 之数组
反编译APP
【Latex】PPT画图,导出emf格式,word插入emf文件并导出pdf,pdf裁剪并导出eps文件,latex插入eps文件
Golang语言快速上手到综合实战笔记(Go语言、Beego框架、高并发聊天室、爬虫)
Construction of dnslog platform
vulnhub Me-and-My-Girlfriend-1
How to use SAP intelligent robotic process automation to automate Excel
Introduction to gateway (Part 2)
IDEA 社区版 常用插件列表
聚焦数据|海泰方圆直击证券行业数据安全治理建设思路
TypeScript 基础 — interface 接口
在线随机抛硬币正反面统计工具