如何避免来自LinkedIn的“HTTP/1.1 999 请求被拒绝”响应


How to avoid "HTTP/1.1 999 Request denied" response from LinkedIn?

我正在向LinkedIn页面发出请求并收到"HTTP/1.1 999 请求被拒绝"响应。我使用 AWS/EC-2 并得到此响应。在本地主机上,一切正常。

这是我获取页面 html 代码的代码示例。

<?php
error_reporting(E_ALL);
$url= 'https://www.linkedin.com/pulse/5-essential-strategies-digital-michelle';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
var_dump($response);
var_dump($info); 

我不需要整个页面内容,只需要元标记(标题,og标签(。

请注意,错误 999 在 W3C 超文本传输协议 - HTTP/1.1 中不存在,可能此错误是自定义的(听起来像个笑话(

LinkedIn不允许直接访问,他们阻止其他网络服务器访问的任何"URL"的可能原因应该是:

  1. 防止未经授权的信息复制
  2. 防止入侵
  3. 防止滥用请求。
  4. 强制使用 API

服务器的某些IP地址被阻止,因为来自"国内ISP"的"IP"不会被阻止,并且当您使用网络浏览器访问LinkedIn时,您使用互联网提供商的IP。

访问数据的唯一方法是使用其 API。看:

  • 使用 Python 访问LinkedIn公共页面
  • 希罗库请求返回 999

注意:像谷歌和必应这样的搜索引擎可能将其IP列入"白名单"。

<?php
header("Content-Type: text/plain");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.linkedin.com/company/technistone-a-s-");
$header = array();
$header[] = "Host: www.linkedin.com";
$header[] = "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0";
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header[] = "Accept-Language: en-US,en;q=0.5";
$header[] = "Accept-Encoding: gzip, deflate, br";
$header[] = "Connection: keep-alive";
$header[] = "Upgrade-Insecure-Requests: 1";
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
$my_var = curl_exec($ch);
echo $my_var;

LinkedIn不支持默认编码"身份",所以如果你设置标题

"接受编码":"gzip,压缩">

你应该得到响应,但你必须解压缩它。

我在进行本地 Web 开发和使用 LinkedIn 徽章功能(profile.js(时遇到了这个问题。我只在Chrome中获得了999 Request denied,所以我刚刚清除了浏览器缓存和localStorage,它又开始工作了。

更新 - 清除缓存只是一个巧合,问题又回来了。LinkedIn的徽章功能存在问题。

我向他们的论坛提交了一个帮助线程。https://www.linkedin.com/help/linkedin/forum/question/714971