【小学生日记】 bash 下载
平时看到我家鸽鸽哪么努力,却不能下载。看到有python下载器,不好用
要安装python3 装完之后要用pip 安装组件,装完还是不能跑
所以在bash上写一个本来也不知道怎么写
直到一个真正的man
一个真正的man怎么用:
man curl
curl -A //用户标识
-o //保存文件名
-L //转到Location
man sed
-r 扩展正则表达式
-e 正则处理
man怎么用就不说了
本次用到curl 和sed
为什么不用wget?因为复杂先下载,再读取,最后删除
sed有替代的吗?awk , egrep
数据解释还有什么工具?jq 要安装,所以不用
cat 1.json |sed -r 's/.*play_addr":\{"uri":"([^"]*)".*/\1/g'
cat 1.json |awk '{match($0,/play_addr":\{"uri":"([^"]*)"/,j8);printf j8;}'
cat 1.json |egrep -o 'play_addr":{"uri":"([^"]*)"' |egrep -o '{5,}' |tr -d "\n"
sed笔记:
普通模式:{}是字符串 \{\}是功能 ()是字符串 \(\)是功能
扩展模式:\{\}是字符串 {}是功能 \(\)是字符串 ()是功能
{}功能:指定范围,{32}匹配长度为32的字符,{5,}匹配长度超过5的字符,{5,9}匹配长度5到9的字符
()功能:内容分组,通过\1,\2,,,来筛选想要的内容
awk笔记:
match 输入内容,正则匹配参数,输出结果
print会打印换行符,输出到控制台用这个
printf不打印换行符,脚本获取参数用这个
egrep笔记:
egrep是grep -E
grep -P是perl正则,感觉和E差不多
-o 仅输出匹配到的内容
获取全民制作人的作品思路
1,提取作品ID,curl {分享链接} | 提取
2,查询作品数据,curl {查询地址}{作品ID} > tmp.json
3,提取数据,怎么提取都行,sed, awk, grep, jq, 最风骚的放进python
4,下载资源,这个要设置UA
大概代码
```
jjget(){
sed -r 's/.*'$1'":\{"uri":"[^"]*","url_list":\["([^"]*)".*/\1/' |sed -e 's/\\u0026/\&/g'
}
jiget(){
sed -r 's/.*'$1'":\{"uri":"([^"]*)".*/\1/'
}
jget(){
sed -r 's/.*'$1'":"([^"]*)".*/\1/'
}
jdir(){
if [ -d $1 ]
then
jjdir=$1/
else
mkdir $2
jdir $2 $3 $4
fi
}
read -p '输入链接:' vurl
if [ -z "$vurl" ]
then
echo 没有输入
exit 0
else
echo $vurl
fi
ua1='Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
ua=$ua1
xzq="curl -A 'BytedanceWebview/d8a21c6'"
vids=`curl -A "$ua" $vurl|sed -r 's/.*\/({19}).*/\1/g'`
vtmp=$vids.json
jpi=`echo aHR0cHM6Ly93d3cuaWVzZG91eWluLmNvbS93ZWIvYXBpL3YyL2F3ZW1lL2l0ZW1pbmZvLz9pdGVtX2lkcz0= |base64 -d`
curl -A "$ua" $jpi$vids>$vtmp
oc=`cat $vtmp |jjget origin_cover`
pa=`cat $vtmp |jjget play_addr|sed -e 's/playwm/play/' -e 's/720/1080/'`
pi=`cat $vtmp |jiget play_addr`
st=`cat $vtmp |jgetshare_title`
nn=`cat $vtmp |jgetnickname`
ui=`cat $vtmp |jgetunique_id`
si=`cat $vtmp |jgetshort_id`
echo 作者: $nn($ui)$si
echo 作品: $st
echo 封面: $oc
echo 地址: $pa
jdir $nn $nn $ui tmp
echo 目录:$jjdir
wj=$jjdir$pi.mp4
jj=$jjdir$st.mp4
curl -A "$ua" -o $wj -L $pa
echo 保存到 $wj
mv $wj "${jj}" && echo更名成功:$jj || echo 更名失败!
wj=$jjdir$pi.png
jj=$jjdir$st.png
curl -A "$ua" -o $wj -L $oc
echo 保存到 $wj
mv $wj "${jj}" && echo更名成功:$jj || echo 更名失败!
wj=${jjdir}ls.txt
echo $pi >>$wj
echo $st >>$wj
echo $pa >>$wj
echo $oc >>$wj
rm $vtmp
```
已开通土豪通道:
平民保存上方代码就能直接使用,土豪则多一种选择直接点击就能下载
这个是怎么压缩的?
zip jkun ikun
上方意思:把ikun打包到jkun.zip
土豪该怎么解压 unzip jkun.zip
如果是服务器下载到本地后该怎么上传?
scp {jkun路径} {服务器用户名}@{服务器IP}/jkun.zip
输入密码+回车
scp在命令行用,不友好,所以用sftp,鼠标一拉就上传了
文本该怎么保存,常用的编辑器有vi vim nano
centos 默认没有nano
debian 默认没有vi或者vim
怎么进入编辑器:
选择你拥有的编辑器+文件名,例如vi ikun
右键粘贴你拷贝到的代码
该如何保存退出?
vi,vim:按键盘左上角那个esc,然后输入【 :wq 】再按回车
nano:先按我家鸽鸽的特长和篮球ctrl+o,不改名直接回车,ctrl+x退出
android该怎么用?
termux 用编辑器粘贴进去
mt2这个就是随意了,可以先解压再打开终端,也可以直接终端粘贴保存
su原生环境,可能会不稳定
padavan 路由器好像能用,打开ssh感觉有点鸡肋
win怎么用?
msys2 git bash busybox.exe gow好像挺多的,搜索关键字win bash
都没怎么用,就不列举了
busybox.exe curl.exe ikun 三个文件可以放在同一文件夹,进入cmd
busybox.exe bash 开启环境之后输入ikun回车
想右键随时打开cmd
```
reg add HKCU\SOFTWARE\Classes\Directory\background\shell\CMD.\command /d "cmd.exe /s /k pushd \"%%V\""
reg add HKCU\SOFTWARE\Classes\Directory\background\shell\CMD. /v Icon /d cmd.exe
reg add HKCU\SOFTWARE\Classes\Directory\background\shell\CMD. /v MUIVerb /d CMD命令行
```
ikun脚本用法:
sh ikun
centos 可以使用./ikun
脚本会提示你输入分享链接 鸽鸽下的蛋你别吃 都是咯咯的人,好耶!{:301_1001:}
页:
[1]