背景
域名被封常见原因 域名被封,确实有很多因素,简单列举下: 1、购买的域名有黑历史,曾经进过小黑屋,这类则是风险名单中的重点检测对象。 2、qq和微信是2种完全不同的检测机制,经常会出现一边被封另一边没事! 3、网站流量过大,腾讯针对流量过大的网站也是重点检测的对象! 4、诱导转发活动,即使是合法营销,也会被封; 5、 正文、标题、图片任意有一处有一点点违规信息,被系统抓取到也是会被封禁 6、人工举报,这个也占有一定的比例 7、有的是封链接不封域名,因为是腾讯合作的第三方平台,京东、拼多多、有赞等等 8、 服务器 IP是一个很重点检测。 9、对于明显特征或复用度高的违规图片,系统是能识别的! 检测接口分享 使用说明 API接口说明 名称说明 接口地址https://api./v2/wechat_url_check 返回格式JSON 请求方式GET 请求示例https://api./v2/wechat_url_check?app_key=您的App key&url=www.qq.com 接口备注如果您处于登录状态,请求示例中的App Key即是您真实的App Key,不需要再去我的APPKEY查询 请求参数说明 名称必填类型说明 app_key是string用户的App Key,在我的APPKEY可查询到,用于API调用 url是string需要检测的url或域名,例:https://www.qq.com/ 或 www.qq.com 返回参数说明 名称类型说明 codeinteger状态码,0表示正常,非0表示错误 msgstring提示信息 data.statusstring域名状态,取值:ok(正常)、blocked(被封) data.err_codeinteger域名被封的原因,0(正常)、30001(页面被转码)、30002(已停止访问该网页)、30998(如需浏览,请长按网址复制后使用浏览器访问)、30999(其他未知错误) data.err_msgstring错误说明 data.sub_err_msgstring详细的错误说明 JSON返回示例 //请求频率过快 { "code": 10001, "msg": "接口调用频率过快", "data": [] } //服务端处理请求出现异常 { "code": 10004, "msg": "系统内部错误,请重试", "data": [] } //请求成功且域名正常 { "code": 0, "msg": "OK", "data": { "status": "ok", "err_code": 0, "err_msg": "", "sub_err_msg": "" } } //请求成功但域名被封 //被封原因:已停止访问该网页 - 网页包含侵权内容 { "code": 0, "msg": "OK", "data": { "status": "blocked", "err_code": 30002, "err_msg": "已停止访问该网页", "sub_err_msg": "网页包含侵权内容" } } //请求成功但域名被封 //被封原因:页面被转码 - 非微信官方网页 { "code": 0, "msg": "OK", "data": { "status": "blocked", "err_code": 30001, "err_msg": "页面被转码", "sub_err_msg": "非微信官方网页" } } //请求成功但域名被封,需要长按网址复制后使用浏览器访问 { "code": 0, "msg": "OK", "data": { "status": "blocked", "err_code": 30998, "err_msg": "如需浏览,请长按网址复制后使用浏览器访问", "sub_err_msg": "" } } 示例代码 Python # -*- coding: utf-8 -*- import json, urllib from urllib import urlencode def main(): # 您的App Key,在我的APPKEY可查询到 apiToken = "*********************" url = "https://api./v2/wechat_url_check" params = { "url" : "www.qq.com", #需要检测的地址或域名 "app_key" : apiToken, } params = urlencode(params) f = urllib.urlopen("%s?%s" % (url, params)) content = f.read() res = json.loads(content) if res: code = res["code"] if code == 0: #成功请求 print res["result"] else: print "%s: %s" % (res["code"],res["msg"]) else: print "request api error" if __name__ == '__main__': main() PHP <?php /** * @author 野猫VIP * @copyright 2020 * @see http:///open/weixin_jiance */ try { //您的App Key,在我的APPKEY可查询到 $apiToken = "********************************"; //需要检测的地址或域名 $reqUrl = "www.qq.com"; $url = sprintf("https://api./v2/wechat_url_check?app_key=%s&url=%s", $apiToken, $reqUrl); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); //禁止cURL验证对等证书(peer's certificate),不建议生产环境这么配置 //如果出现证书问题,建议在https://curl./docs/caextract.html下载最新证书 //并打开php.ini添加:curl.cainfo=/path/to/cacert.pem curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $responseBody = curl_exec($ch); if ($responseBody === false) { printf("Curl error: %s\n", curl_error($ch)); return; } $responseArr = json_decode($responseBody, true); if (json_last_error() != JSON_ERROR_NONE) { printf("JSON解析接口结果出错:%s\n", json_last_error_msg()); return; } if (isset($responseArr['code']) && $responseArr['code'] == 0) { //接口正确返回 //$responseArr['data']['status'] 的取值范围:ok、blocked //ok:表示正常;blocked:表示被封 printf("测试地址(%s)的状态为:%s\n", $reqUrl, $responseArr['data']['status']); } else { printf("接口异常:%s\n", var_export($responseArr, true)); } } catch(Exception $e) { printf("出现异常:%s\n", $e->getMessage()); } |
|