我正在向LinkedIn页面发出请求并收到“HTTP / 1.1 999 Request denied”响应。 我使用AWS / EC-2获得此响应。 在localhost上一切正常。
这是我的代码示例,用于获取页面的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-tags)。
答案 0 :(得分:6)
请注意,W3C Hypertext Transfer Protocol - HTTP/1.1中不存在错误 999 ,可能此错误是自定义的(听起来像个笑话)
LinkedIn不允许直接访问,这可能是他们阻止任何&#34; url&#34;来自其他网络服务器的访问应该是:
服务器的某些IP地址被阻止,因为&#34; IP&#34;来自&#34;国内ISP&#34;未被阻止,当您使用网络浏览器访问LinkedIn时,您使用的是互联网提供商的IP。
访问数据的唯一方法是使用他们的API。参见:
答案 1 :(得分:4)
<?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;
答案 2 :(得分:1)
LinkedIn不支持默认编码'identity',因此如果设置标题
'接受编码':'gzip,deflate'
你应该得到回复,但你必须解压缩它。
答案 3 :(得分:0)
我在进行本地Web开发并使用LinkedIn徽章功能(profile.js)时遇到了这个问题。我只是在Chrome中使用var chars = new antlr4.InputStream(script);
,所以我只是清除了浏览器缓存和localStorage,然后它又开始工作了。
更新-清除缓存只是一个巧合,问题又回来了。 LinkedIn的徽章功能存在问题。
我向他们的论坛提交了一个帮助主题。 https://www.linkedin.com/help/linkedin/forum/question/714971