C# Selenium 抓取动态网页信息教程 - 代码示例
抓取动态网页信息通常需要使用浏览器自带的 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 选择器获取搜索结果列表,并遍历每个搜索结果,输出标题和链接。最后关闭浏览器实例。
原文地址: https://www.cveoy.top/t/topic/oXER 著作权归作者所有。请勿转载和采集!