c# - 使用 AngleSharp 和 CSS 选择器的 C# Web 抓取知识面板/Google 页面
问题描述
背景:我正在尝试抓取谷歌页面的一部分,专门用于餐馆的知识面板。检索搜索到的场所的名称、地址、营业时间、网站链接、电话号码等以及其业务页面中出现的其他此类信息。(谷歌页面的右侧)
安装和使用的 NuGet 包是 AngleSharp。
问题:在调试模式下尝试锁定 CSS 选择器后,它说“枚举没有产生结果”,因此我没有收到任何输出。
我相信程序无法正确锁定正确的 CSS 选择器。
这个问题的解决方案可能是什么?
提前致谢 :)
namespace WebScrapingTutorial
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
internal async void ScrapeWebsite()
{
var config = Configuration.Default.WithDefaultLoader();
//Example restaurant
var address= "https://www.google.com/search?q=the+ledbury+restaurant+london&rlz=1C1CHBF_en-GBGB914GB914&oq=the+ledbury+restaurant+london&aqs=chrome..69i57j46j0l4.147j0j9&sourceid=chrome&ie=UTF-8";
//cellSelector contains CSS Selector of the restaurant's address
var cellSelector = "#rhs > div > div.kp-blk.knowledge-panel.Wnoohf.OJXvsb > div > div.ifM9O > div > div.SALvLe.farUxc.mJ2Mod > div > div.EfDVh.mod > div > div > span.LrzXr";
var cells = document.QuerySelectorAll(cellSelector);
var titles = cells.Select(m => m.TextContent);
//Output
foreach (var title in titles ) { rtbData.Text = title; }
}
private void btnScrape_Click(object sender, EventArgs e)
{
ScrapeWebsite();
}
}
}
解决方案
推荐阅读
- python - 如何根据 Python 中的散点图颜色制作等高线图?
- vue.js - Vue中的页面幻灯片转换?
- streamlit - 没有名为 streamlit.__main__ 的模块;'streamlit' 是一个包,不能直接执行
- php - 安装后mongo没有出现在phpinfo中
- time-complexity - 这个给定代码片段的空间复杂度是多少?
- javascript - 数组数据提取
- reactjs - 反应:将状态传递给 setInterval 时出现问题
- c# - Web 应用程序控制器将项目添加到队列并在其他地方使用
- ecmascript-6 - 在 JavaScript 中从给定数组创建新 Set 的时间复杂度是多少
- java - Maven 编译器插件抱怨“未找到 SLF4J 提供程序”