【问题标题】:trying to scrape facebook messenger chat esp. a facebook messenger group chat试图抓取 facebook messenger 聊天 esp。 facebook Messenger 群聊
【发布时间】:2019-11-20 17:14:03
【问题描述】:

我正在尝试使用 c# + selenium + htmlAgilitypack 抓取一些 fb messenger 群聊。到现在为止,我已成功登录 facebook 并导航到 Messenger 聊天,但我无法阅读聊天中的消息并将其显示在我的控制台上。

  string webUrl = "https://www.facebook.com/";
        bool Loop = true;
        HtmlWeb Web = new HtmlWeb();
   Console.WriteLine("Begins");
    var options = new ChromeOptions()
        {
            BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",
            AcceptInsecureCertificates = true

        };

        IWebDriver driver = new ChromeDriver(@"C:\Users\anasa\OneDrive\Documents\visual studio 2015\Projects\Web Scrapping\Web Scrapping\Classes", options);

    driver.Navigate().GoToUrl(webUrl);

        var element = driver.FindElement(By.Id("email"));
        element.SendKeys("email");
        element = driver.FindElement(By.Id("pass"));
        element.SendKeys("password");
        element = driver.FindElement(By.XPath("//input[@value='Log In']"));
        element.Click();
        string link = HttpUtility.HtmlDecode(webUrl + "messages/t/Group.Name");
        driver.Navigate().GoToUrl(link);

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(driver.PageSource);
        var htmlBody = doc.DocumentNode.SelectSingleNode("//body");
        Console.WriteLine(htmlBody.OuterHtml);

("//body") 将完整的正文带到控制台,但是当我检查消息时使用一个类,即 "_3oh- _58nk" 并在使用 doc.DocumentNode.SelectNodes("//span[@class='_3oh- _58nk']"),它显示空错误。所以我无法抓取 fb messenger 的消息。

【问题讨论】:

  • “我无法抓取 fb messenger 的消息。” - 很好。因为你一开始就不应该这样做。
  • 好的,谢谢。我已经提取了消息。

标签: c# facebook selenium-webdriver web-scraping html-agility-pack


【解决方案1】:

更改了选择节点的语句,它起作用了。

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(driver.PageSource);
        var htmlBody = doc.DocumentNode.SelectNodes("//span[contains(@class,'_3oh- _58nk')]").ToList();

        foreach (var abc in htmlBody)
        {
            Console.WriteLine(abc.InnerText);
        }

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    相关资源
    最近更新 更多