C#-从URL获取内容

时间:2019-03-14 17:30:30

标签: c# asp.net asp.net-mvc selenium-webdriver asp.net-web-api

如何通过linkedin网站获取URL的内容,当我提供带有EmailID的URL时,我需要获取如下所示的HTML代码。 但是,当我尝试使用代码访问URL时,我正在登录linkedin问题。 我尝试使用此C#代码,但出现登录问题

string Url = "https://www.example.com/sales/gmail/profile/viewByEmail/" + 
        TextBox1.Text;//example@gmail.com
        HtmlWeb web = new HtmlWeb();
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
        HtmlDocument doc = web.Load(Url);
        HtmlNode[] nodes=doc.DocumentNode.SelectNodes("//div").ToArray();

任何人都可以帮助我如何通过登录获取HTML代码, 预先感谢。

2 个答案:

答案 0 :(得分:3)

该错误告诉您问题的确切原因-您需要登录。此处有2种解决方案:

  1. 只需将一个按钮挂接到登录页面即可。这是骇人听闻的解决方案,我不推荐任何方式。话虽如此,这与您当前的代码一致。
  2. 使用API​​,而不使用Selenium。我不确定为什么这里需要Selenium:看来您只想从LinkedIn获得数据。如果这是您要查找的内容,则需要使用LinkedIn API。如果您打算自己处理信息,那是从LinkedIn提取信息的正确方法。

我不知道您的要求,也许您确实需要浏览器中的网站。但是对我来说,您似乎需要他们的API。阅读有关它的一些教程,它可能比尝试在Selenium中处理网站更好地执行任务。

答案 1 :(得分:0)

基本上,如果要操作登录表单,则需要浏览器。您可以尝试PhantomJS或CasperJs这样的无头浏览器。在自定义至linkedin页面之前,您可以尝试大量文档和示例。无头浏览器的工作原理与普通浏览器类似,可让您编写代码以使其自动化。