vic*_*cky 2 php dom linkedin web-scraping
我想要来自linkedin的朋友的电子邮件ID.直到现在我得到了我的网站请求网址的网址.这就像https://www.linkedin.com/profile/view?id=xxx&authType=name&authToken=xxx&trk=api*a4152951*s4217191*
(Linkedin API IN.API.Connections("me").result(function(me){})
从这个网址我必须得到电子邮件地址.所以我使用curl.这是我的代码:
$ch = curl_init("https://www.linkedin.com/profile/view?id=259116153&authType=name&authToken=S9sN&trk=api*a4152951*s4217191*");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
$rr = curl_exec($ch);
//curl_close($ch);
echo $rr;
Run Code Online (Sandbox Code Playgroud)
我也试过这个但没有用(空白页):
$url = $_POST['links'];
$contents = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($contents);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXPath($dom);
$hrefs = $xpath->query("//li[@id='contact-field']");
for ($i = 0; $i < $hrefs->length; $i++)
echo $hrefs->item($i)->nodeValue;
if(!$hrefs) echo 'Not found';
echo $hrefs->nodeValue;
Run Code Online (Sandbox Code Playgroud)
还有一件事,如果把这个网址放在浏览器中,我可以通过点击显示:block(CSS)的conatct info按钮看到电子邮件.
小智 6
我们的使用条款明确禁止从LinkedIn抓取数据.检索数据的正确方法是通过REST API调用.
请求LinkedIn成员的电子邮件地址要求您的应用程序请求一个名为r_emailaddress的特殊OAuth权限
确保您的应用程序配置为请求该权限,然后使用以下REST API调用来检索成员的电子邮件地址:
https://api.linkedin.com/v1/people/id={targetMemberID}:(email-address)
Run Code Online (Sandbox Code Playgroud)
有关进行REST API调用的其他信息,请访问:https: //developer.linkedin.com/documents/profile-api