如何用C#从网站获取动态内容

问题描述 投票:0回答:1

我希望通过 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();
 }
javascript c# selenium-webdriver
1个回答
0
投票

使用selenium你可以尝试通过

xpath
找到元素。此代码允许等待直到元素出现。

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

wait.Until(ExpectedConditions.ElementExists(By.xpath("YOUR_XPATH_HERE")));
© www.soinside.com 2019 - 2024. All rights reserved.