C# 如何在scrapysharp中查找只有属性(即没有名称或id)的表单

C# 如何在scrapysharp中查找只有属性(即没有名称或id)的表单,c#,web-scraping,scrapysharp,C#,Web Scraping,Scrapysharp,我对scrapySharp和网页抓取都是新手。我试图刮一个网站是安全的,并有一个登录屏幕。表单元素没有name/id属性,因此使我的生活更加复杂。我无法理解如何使用下面的代码加载表单。非常感谢您的任何见解 C#: HTML: 登录 在ScrapySharp中使用“By”无法实现这一点,因为它只有四种“元素搜索类型”: 在你的情况下,你没有一个,所以考虑使用“CSSSECK”来实现你的目的: var form = homepage.Html.CssSelect("form[action='pro

我对scrapySharp和网页抓取都是新手。我试图刮一个网站是安全的,并有一个登录屏幕。表单元素没有name/id属性,因此使我的生活更加复杂。我无法理解如何使用下面的代码加载表单。非常感谢您的任何见解

C#: HTML:

登录

在ScrapySharp中使用“By”无法实现这一点,因为它只有四种“元素搜索类型”:

在你的情况下,你没有一个,所以考虑使用“CSSSECK”来实现你的目的:

var form = homepage.Html.CssSelect("form[action='provider-login']");
//Or
var form = homepage.Html.CssSelect("form[action*='provider-login']");

您可以通过标记找到第一个表单节点,然后使用PageWebForm构造函数

var browser = new ScrapingBrowser();
var homepage = browser.NavigateToPage(new Uri("https://somedomain.com/ProviderLogin.action/"));

var form1node = homepage.Html.SelectSingleNode("//form");
var form1 = new PageWebForm(form1node, browser); // this is where it happens!

form1["username"] = "some username";
form1["password"] = "some password";
form1.Method = HttpVerb.Post;
var webpage = form1.Submit();
{
   Text,
   Id,
   Name,
   Class
}
var form = homepage.Html.CssSelect("form[action='provider-login']");
//Or
var form = homepage.Html.CssSelect("form[action*='provider-login']");
var browser = new ScrapingBrowser();
var homepage = browser.NavigateToPage(new Uri("https://somedomain.com/ProviderLogin.action/"));

var form1node = homepage.Html.SelectSingleNode("//form");
var form1 = new PageWebForm(form1node, browser); // this is where it happens!

form1["username"] = "some username";
form1["password"] = "some password";
form1.Method = HttpVerb.Post;
var webpage = form1.Submit();