页面移除script文件后不刷新的解决办法0+

161 views / 2020.07.30 / 1:01 下午

用dom操作script元素,移除后页面并不会因此而改变,原因是浏览器处理script标签使用块加载的方法,一旦解析完成就写入内存中了。

解决办法是获取当前页面的html,用正则处理掉script标签,然后在打开一个新页面去解析这些html。

参考代码如下:

var ohtml=document.getElementsByTagName('html')[0].innerHTML;
var nhtml=ohtml.replace(/]+xx.js.+?<\/script>/,"").replace(/]+yy.+?<\/script>/,""); 
var testwin= open("", "testwin","");
testwin.document.open();
testwin.document.write(nhtml); 
Categories: 感悟 Tags:

抖音视频无水印下载实现-2020年最新1+

121,150 views / 2020.03.11 / 12:12 上午

既然搜到了本文,您自然知道视频没有水印的重要性,那么如何来实现呢,读完本文,您会有透彻的了解。
为了逻辑清晰,便于讲解,本文借助PHP解析视频源地址,然后通过JSBOX将视频下载的手机,当然您也可以完全用JSBOX实现全部逻辑。

废话不多说,直接上代码:

<?php
$url = $_POST['u'];//这个u就是抖音分享单个视频后复制到剪贴板的地址
!preg_match("/^https/i",$url)&&exit("403");//做个简单的post验证
$header = "User-Agent: Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Mobile Safari/537.36\r\n";
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>$header
)
);
$context = stream_context_create($opts);
$content = file_get_contents($url, false, $context);
$try_itemId = preg_match('/itemId\: "([0-9]+)"/',$content, $itemId_match);
$try_dytk = preg_match('/dytk\: "([0-9a-z]+)"/',$content, $dytk_match);
if($try_itemId&&$try_dytk!=1) exit("系统分析错误");
$iteamId = $itemId_match[1];
$dytk = $dytk_match[1];
$cmd = file_get_contents("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=".$iteamId."&dytk=".$dytk, false, $context);
$j1 = json_decode($cmd,true);
echo ($j1['item_list'][0]['video']['play_addr']['url_list'][0]);

?>

服务端代码完毕。接下来用jsbox获取剪贴板中的抖音分享链接,将链接POST发送到服务端即可。这部分实现比较简单,就不再赘述。

至此,完毕。

抓取股票数据的定时任务怎么写?0+

57,922 views / 2020.02.28 / 12:12 下午

先写个crontab,规律性的执行一个php脚本,比如2分钟一次。脚本中抓取任务执行前加个stockday判断,就可以了。stockday的实现如下:
function stockday(){
$w = date(“w”,time());
if($w==0||$w==6) return false;//周一到周五执行
//开盘时间大家都知道
$checkDayStr = date(‘Y-m-d ‘,time());
$timeBegin1 = strtotime($checkDayStr.”09:20:00″);
$timeEnd1 = strtotime($checkDayStr.”11:30:00″);
$timeBegin2 = strtotime($checkDayStr.”13:00:00″);
$timeEnd2 = strtotime($checkDayStr.”15:02:00″);
$curr_time = time();
if($curr_time >= $timeBegin1 && $curr_time <= $timeEnd1){
return true;
}
if($curr_time >= $timeBegin2 && $curr_time <= $timeEnd2){
return true;
}
return false;
}

Categories: 感悟 Tags:

gost穿透公司内网控制公司服务器0+

76,872 views / 2019.12.09 / 1:01 下午

1. 需要一台外网服务器,在上面执行:
./gost -L=ss2://AEAD_CHACHA20_POLY1305:password@:443 -L=auto://127.0.0.1:1080
2.在公司内网一台跳板机上建立通道,注意,需要可以上面那台访问外网服务器。
gost.exe -L=rtcp://127.0.0.1:9822/要控制的的服务器ip:22 -F=ss2://AEAD_CHACHA20_POLY1305:password@外网服务器ip:443?ping=300 -F socks5://127.0.0.1:1080
3.在外网服务器就可以访问内网的要控制的服务器了:
ssh -p 9822 root@127.0.0.1

Categories: 感悟 Tags:

国内网络十分不稳定,我们在用pip install或者docker拉取镜像的时候经常出现超时或者无法访问的情况,这时候可以找一台国外的云服务器,做个代理加速我们的安装进程。步骤如下:

国外云服务器1.20.20.31 ssh端口22

首先通过ssh建立一个socket代理,端口号是1080:

ssh -fND 127.0.0.1:1080 root@1.20.20.31 -p 22

但是我们设置环境变量的时候,没法设置socket代理,只能设置http和https的,所以我们需要借助一个工具gost来把socket代理转化为http的。

安装gost的方法:
------

#### 二进制文件

https://github.com/ginuerzh/gost/releases

#### 源码编译

```bash
go get -u github.com/ginuerzh/gost/cmd/gost
```

#### Docker

```bash
docker pull ginuerzh/gost
```

#### Ubuntu商店

```bash
sudo snap install gost

“`

运行如下命令启动一个1081的http代理:

gost -L :1081 -F socks5://127.0.0.1:1080

最后设置pip或者docker代理就可以了:

①永久设置:

vim /etc/profile:
export http_proxy='http://127.0.0.1:1081'
export https_proxy='http://127.0.0.1:1081'
source /etc/profile

②临时设置(重连后失效):
也可以直接运行

export http_proxy='http://127.0.0.1:1081'
export https_proxy='http://127.0.0.1:1081'

Categories: 分享 Tags: