我希望通过 C# 应用程序自动从网站获取信息。问题在于这些信息是动态的。我无法从页面的源代码中检索它们。即使在浏览器上按 F12,我也找到了识别这些信息的方法!
我尝试使用 Nuget Selenium 包获取它们,但无法获取我想要的信息。我无法使用正文内容,因为所有信息都是动态的,而且我还没有找到有效的 Select,因为页面没有具体 id。
这里有两个例子: https://web.idle-mmo.com/wiki/items?page=1&sort_by=id_asc 在此页面上,我希望获取每个对象的名称及其页面的链接,并且能够“单击”按钮以显示第 2 页,因为第 2 页的直接链接会指向第 1 页.
https://web.idle-mmo.com/wiki/items/mystic-sword/ZjlPA8v9NMaXNEyMe2Oa?same_window=true 在这里,我想检索有关最新销售的信息以及最近几天的价格历史记录(将鼠标悬停在图形上)。
在这两种情况下,我都不知道如何检索我需要的东西。
我已经尝试了很多方法,但没有任何效果,所以这是检索源代码的胚胎代码,但在我的情况下不起作用。
private void TestReadPage()
{
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://web.idle-mmo.com/wiki/items/mystic-sword/ZjlPA8v9NMaXNEyMe2Oa?same_window=true");
// Getting the body but useless
var body = driver.FindElement(By.TagName("body")).Text;
// No result trying to get last sold but just the list, not the average sold price in the graphic
var lastsold = driver.FindElements(By.ClassName("!border-t-0"));
driver.Quit();
}
使用selenium你可以尝试通过
xpath
找到元素。此代码允许等待直到元素出现。
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementExists(By.xpath("YOUR_XPATH_HERE")));