【发布时间】: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