我有一个包含大量产品和价格的网站。
我的价格一直被不断地cURLed。
我的价格一直被不断地cURLed。
我想通过<noscript>
标签阻止它,但我能做的只是隐藏内容,爬虫仍然可以抓取我的内容。
是否有一种运行JS测试来检测JS是否被禁用(以检测爬虫),并重定向这些请求,也许在黑名单中。
这样做会阻止谷歌通过我的网站吗?
我想通过<noscript>
标签阻止它,但我能做的只是隐藏内容,爬虫仍然可以抓取我的内容。
是否有一种运行JS测试来检测JS是否被禁用(以检测爬虫),并重定向这些请求,也许在黑名单中。
这样做会阻止谷歌通过我的网站吗?
$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, 'http://www.yoursite.com?data=anydata');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.yoursite.com');
$html = curl_exec($ch);
由于CURL只是一个HTML请求,您的服务器无法区分,除非您限制某些URL的访问或检查引荐URL并实施过滤器以防止任何未经本地引荐的内容。可以在此处找到构建检查的示例:
User Agent
来阻止未伪造的 cURL
请求。据我所知,没有一个搜索引擎爬虫在其用户代理字符串中包含cURL,因此这不应该阻止它们。if(stripos($_SERVER['HTTP_USER_AGENT'],'curl') !== false) {
http_response_code(403); //FORBIDDEN
exit;
}
userAgent
的请求(但使用 cURL 可以绕过此限制),或者将 Google、Facebook、Twitter 等机器人的userAgent
加入白名单。 - Adam Azad