用C#编写一段抓取动态网页信息的代码
抓取动态网页信息通常需要使用浏览器自带的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/huQK 著作权归作者所有。请勿转载和采集!