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