【发布时间】:2018-06-19 04:39:07
【问题描述】:
我想用c# 抓取一个网站,该网站是用angular2+ 构建的。
我在点击按钮、链接等方面取得了一些成功。
我在winform应用程序中做得很薄,并使用browserObject。
我的问题是:
在一个地方,我必须从下拉菜单中选择一个选项并触发点击事件。 我已成功设置下拉菜单中的值,但我无法点击
我正在使用以下代码:
var select = browser.Document.GetElementsByTagName("select");
var foundGIAXXXN = false;
foreach (HtmlElement s in select)
{
if (s.GetAttribute("ng-model") == "savedSearchModel")
{
var options = s.Children;
int optionIndex = -1;
foreach (HtmlElement o in s.Children)
{
optionIndex++;
if (o.InnerText == "GIAGGGVST")
{
s.Children[optionIndex].SetAttribute("selected", "selected");
//o.SetAttribute("selected", "selected");
s.SetAttribute("class", "ng-valid ng-touched ng-not-empty ng-dirty ng-valid-parse");
foundGIAXXXN = true;
break;
}
}
}
if (foundGIAXXXN)
break;
}
await Sleep(2);
foreach (HtmlElement b in browser.Document.GetElementsByTagName("button"))
{
if (b.GetAttribute("ng-click") == "vm.getSavedFilterBySaveID(savedSearchModel); isLoadSavedOpen = false;")
{
b.InvokeMember("click");
}
}
【问题讨论】:
-
你应该试试 Selenium C#
-
谢谢@MataPrasadChauhan,我刚刚问了我的朋友和想要废弃的网站有一个 API,我可以用它来获取数据,我是使用 API 的新手,所以我不知道这。谢谢你的建议:)
标签: c# angular winforms web-scraping