Linux的shell脚本bing车牌号图库爬取

使用工具:Ubuntu 22.4版本,vim等

知识点:sed -e ,wget,seq等

题目:假设现在正在进行车牌识别项目,目前手上没有车牌相关图片,从网络一张一张下载的话效率低下,请编写shell程序,从网络中一键抓取车牌相关图片。

实现的目标:获取bing中车牌号图库的源码,下载到当前目录,通过正则表达式匹配需要的内容(图片的网页地址)

效果展示:得到了一共6个文件,filename.txt 、 loadingpath.txt、bing目录下的图片、index1、index2、load.txt

 

 

 建议一步一测试,不要求一步完成,测试过程才是重点,本文只针对bing图库的shell车牌爬取。

1、使用vim编程:

2、默认爬取bing图库的第一页和第二页;或者终端输入命令行参数为两个,这里我使用默认不输入参数,最后会爬取到141张照片。

照顾小白,本人也小白一个,

代码:

[ $# = 2 ] && {  
    page1=$1  #传入参数1
    page2=$2  #传入参数2

解析:

“#”:传递到本脚本或函数的参数数量;“$”:①运行当前脚本的当前进程id号②引用变量的值等

“[ 内容 ]”:内容两边个需要空一格,否则会出错;“&&”:只有前一条命令执行成功后才能执行后一条命令,eg:只有 [ $# = 2 ]成功执行才能执行

{  
    page1=$1  #传入参数1
    page2=$2  #传入参数2
}  

3、下载到的图片默认为当前目录的bing目录,如果该目录不存在,就创建bing目录。

 load.txt记录下载的网页的页数,如果该文本不存在,就创建该文本。

 

4、用一个for循环来遍历需要爬取的网页次数,这里为2次。每次下载之前都遍历 load.txt判断该网页是否已经被下载完成,存储已经下载完成的页码到load.txt,如果没被下载完成(flag=0)才可以下载。通过正则表达式匹配需要的图片的网页地址内容和图片名。

 这里面的filename.txt可以不用,原本是想把图片的名字存储到filename.txt,最后得到对应的名字对应的照片,奈何本人能力不足,只能过滤一部分,图片效果在上面。

5、得到了filename.txt , loadingpath.txt文件后,按顺序分别把它们存储,这里给出存储下载路径和时间的代码,循环图片的数量进行下载。

wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。

wget -O  图片保存的地址/图片名.jpg  "图片网页地址"

 6、运行。

 需要源码的可以评论区留下邮箱号,本人看到后会及时发送到你的邮箱,如果本篇文章对你有点帮助,麻烦点个赞。

本人小白一个,这篇仅记录和分享自己的解决方法,相关的文字描述出现不当或者侵权他人,请联系我及时更正删除。

 参考网页:

Linux sed 命令

linux sed命令删除特殊字符

linux编写shell脚本程序实例2

Ubuntu使用wget命令行下载一张图片

Linux 上机实战3 shell脚本程序设计

Linux系统中10个使用Wget命令下载文件示例

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值