由于項(xiàng)目需要在微信推廣,就在前段時(shí)間運(yùn)營(yíng)部反映鏈接時(shí)不時(shí)被封,頁(yè)面顯示:停止訪問(wèn)該頁(yè)面!作為一個(gè)程序猿熊熊燃?xì)?,干脆就?xiě)了個(gè)接口。
接口獲取思路
1、模擬微信瀏覽器
通過(guò)瀏覽器模擬微信可獲取微信接口,登錄微信網(wǎng)頁(yè)版按F12獲取接口,還沒(méi)找到微信號(hào)就被封了。
2、抓包軟件來(lái)獲取騰訊接口
是我想的太簡(jiǎn)單了!
3、使用VB語(yǔ)言寫(xiě)出現(xiàn)被微信攔截判斷
能檢測(cè)微信域名,但是基于底層的封裝,在檢測(cè)過(guò)程中慢的懷疑人生。
4、微信公眾號(hào)接口做判斷
羊毛出在羊身上,那就試試用微信公眾號(hào),于是就拿剛注冊(cè)完成的公眾好進(jìn)行獲取,原理是這樣的:將鏈接建成微信短鏈接 - 請(qǐng)求你的短鏈接 - 判斷獲取回來(lái)的頁(yè)面
,結(jié)果是可以檢測(cè)的,注意:公眾號(hào)接口調(diào)用限制了次數(shù)
。
5、直接趴取現(xiàn)成接口
直接趴取的接口,免費(fèi)擼到的接口,再對(duì)接到我的程序上,就可以使用了!
接口地址: http://api.new.urlzt.com/api/vx
請(qǐng)求方式: GET/POST
請(qǐng)求示例: http://api.new.urlzt.com/api/vx?token=Token值(后臺(tái)生成獲取)&url=www.urlzt.com
后臺(tái)地址:https://dwz.cn/TzLUYNU2
微信檢測(cè)被攔截原因分析
1、購(gòu)買的域名有黑歷史,曾經(jīng)進(jìn)過(guò)小黑屋,這類則是風(fēng)險(xiǎn)名單中的重點(diǎn)檢測(cè)對(duì)象。
2、qq和微信是2種完全不同的檢測(cè)機(jī)制,經(jīng)常會(huì)出現(xiàn)一邊被封另一邊沒(méi)事!
3、網(wǎng)站流量過(guò)大,騰訊針對(duì)流量過(guò)大的網(wǎng)站也是重點(diǎn)檢測(cè)的對(duì)象!
4、誘導(dǎo)轉(zhuǎn)發(fā)活動(dòng),即使是合法營(yíng)銷,也會(huì)被封。
5、 正文、標(biāo)題、圖片任意有一處有一點(diǎn)點(diǎn)違規(guī)信息,被系統(tǒng)抓取到也是會(huì)被封禁。
6、人工舉報(bào),這個(gè)也占有一定的比例。
7、有的是封鏈接不封域名,因?yàn)槭球v訊合作的第三方平臺(tái),京東、拼多多、有贊等等。
8、 服務(wù)器 IP是一個(gè)很重點(diǎn)檢測(cè)。
9、對(duì)于明顯特征或復(fù)用度高的違規(guī)圖片,系統(tǒng)是能識(shí)別的!
微信api對(duì)接程序PHP源碼
打開(kāi)Pycharm
把代碼復(fù)制上去,直接運(yùn)行就行!
$url = "http://api.new.urlzt.com/api/vx";
$params = array(
'Token值' =>'appkey',//您申請(qǐng)的Token值
'url' =>'www.qq.com',//您需要檢測(cè)的域名
);
$paramstring = http_build_query($params);
$content = monkeyCurl($url, $paramstring);
$result = json_decode($content, true);
if($result) {
var_dump($result);
}else {
//請(qǐng)求異常
}
/**
* 請(qǐng)求接口返回內(nèi)容
* @param string $url [請(qǐng)求的URL地址]
* @param string $params [請(qǐng)求的參數(shù)]
* @param int $ipost [是否采用POST形式]
* @return string
*/
function monkeyCurl($url, $params = false, $ispost = 0)
{
$httpInfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
}else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch);
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}
Json返回值
- code為
200
{
"code":"200",
"msg":"檢測(cè)正常"
}
- code為
201
{
"code":"201",
"msg":"檢測(cè)異常"
}
- code為
500
{
"code":"500",
"msg":"檢測(cè)失敗"
}
- code為
-1
{
"code":"-1",
"msg":"非法請(qǐng)求或api缺少參數(shù)"
}
?
本文摘自 :https://blog.51cto.com/l