抓取动态网页信息通常需要使用浏览器自带的JavaScript引擎来执行JavaScript脚本,然后再获取页面的DOM结构。在C#中,可以使用Selenium WebDriver来模拟浏览器操作,从而实现抓取动态网页信息的功能。

下面是一个简单的示例代码,使用Selenium WebDriver和Chrome浏览器来抓取百度搜索的结果页面:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

// 创建Chrome浏览器实例
IWebDriver driver = new ChromeDriver();

// 访问百度搜索页面
driver.Navigate().GoToUrl("https://www.baidu.com/s?wd=selenium");

// 等待页面加载完成
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(10);

// 执行JavaScript脚本,模拟滚动到页面底部
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");

// 获取搜索结果列表
IList<IWebElement> results = driver.FindElements(By.CssSelector(".result"));

// 遍历搜索结果,输出标题和链接
foreach (IWebElement result in results)
{
    string title = result.FindElement(By.CssSelector("h3")).Text;
    string url = result.FindElement(By.CssSelector("a")).GetAttribute("href");
    Console.WriteLine(title + " - " + url);
}

// 关闭浏览器实例
driver.Quit();

这段代码首先创建了一个Chrome浏览器实例,然后访问百度搜索页面。接着等待页面加载完成,并执行JavaScript脚本将页面滚动到底部,以获取更多的搜索结果。最后使用CSS选择器获取搜索结果列表,并遍历每个搜索结果,输出标题和链接。最后关闭浏览器实例

用C#编写一段抓取动态网页信息的代码

原文地址: https://www.cveoy.top/t/topic/huQK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录