Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用html agility pack从LinkedIn获取搜索结果_C#_Html_Linkedin_Html Agility Pack - Fatal编程技术网

C# 使用html agility pack从LinkedIn获取搜索结果

C# 使用html agility pack从LinkedIn获取搜索结果,c#,html,linkedin,html-agility-pack,C#,Html,Linkedin,Html Agility Pack,我想获取LinkedIn查询的顶部搜索结果 在这把小提琴中: 将此链接传递到“html”变量: 我想得到第一个结果: 我想该程序需要一些凭据才能首先登录到LinkedIn-我如何传递这些凭据 我尝试检查元素以查看其位置-如何遍历DOM以获得第一个结果 在搜索中使用链接将更加复杂。他们关闭了对未经授权用户的搜索 首先,您需要使用浏览器登录,然后在和上使用会话cookie LinkedIn没有将结果列表直接呈现到html标记。他将大型json对象渲染到元素中,然后使用JS渲染该元素 您的控制台

我想获取LinkedIn查询的顶部搜索结果

在这把小提琴中:

将此链接传递到“html”变量:

我想得到第一个结果:

  • 我想该程序需要一些凭据才能首先登录到LinkedIn-我如何传递这些凭据

  • 我尝试检查元素以查看其位置-如何遍历DOM以获得第一个结果


在搜索中使用链接将更加复杂。他们关闭了对未经授权用户的搜索

首先,您需要使用浏览器登录,然后在和上使用会话cookie

LinkedIn没有将结果列表直接呈现到html标记。他将大型json对象渲染到
元素中,然后使用JS渲染该元素

您的控制台应用程序应如下所示:

static void Main(string[] args)
{
    var html = @"https://www.linkedin.com/search/results/index/?keywords=firstname%3Ajohn%20AND%20lastname%3Adoe%20AND%20company%3Amicrosoft%20AND%20title%3Aceo&origin=GLOBAL_SEARCH_HEADER";

    HtmlWeb web = new HtmlWeb();
    web.PreRequest = new HtmlWeb.PreRequestHandler(OnPreRequest2);
    var htmlDoc = web.Load(html);

    var codeElement = htmlDoc.DocumentNode.SelectNodes("//code[starts-with(@id,'bpr-guid')][last()]");
    var json = WebUtility.HtmlDecode(codeElement.Last().InnerText);
    var obj = JsonConvert.DeserializeObject<Rootobject>(json);
    var profiles = obj.included.Where(i => i.firstName != null);
    foreach(var profile in profiles)
    {
        Console.WriteLine("Profile Name: " + profile.firstName + ";" + profile.lastName + ";" + profile.occupation + ";https://www.linkedin.com/in/" + profile.publicIdentifier); 
    }
    Console.ReadKey();
}
public static bool OnPreRequest2(HttpWebRequest request)
{
    var cookies =   "li_at={YOURCOOKIEHERE};" +
                    "_lipt={YOURCOOKIEHERE}";
    request.Headers.Add(@"cookie:" + cookies);
    return true;
}


public class Rootobject
{
    public Included[] included { get; set; }
}


public class Included
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public string occupation { get; set; }
    public string objectUrn { get; set; }
    public string publicIdentifier { get; set; }
}

我安装了html agility pack,但出现构建错误-JsonConvert、HttpWebRequest、WebUtility不存在,OnPreRequest2匹配项没有重载..PreRequestHandler-我应该包括哪些其他名称空间?nvm,我必须安装NewtonSoft.Json版本9,因为10不适用于VS2012。。顺便说一句,我还有一个简单的要求——从文件/表中读取html搜索变量,并将输出转储到文件/表中。您是否有兴趣将此编码为25美元的亚马逊礼品卡?
Profile Name: John;Doe;ceo at Microsoft;https://www.linkedin.com/in/john-doe-8102b868
Profile Name: John;Doe;Ceo at Microsoft;https://www.linkedin.com/in/john-doe-63803769
Profile Name: John;Doe;CEO at Microsoft;https://www.linkedin.com/in/john-doe-2151b69b