ScrapySharp does not POST form
本文关键字:form POST not does ScrapySharp | 更新日期: 2024-06-14 06:39:53
我正在使用ScrapySharp在Maryland Case search web应用程序上发布一个搜索案件的表格。
使用Fiddler,我找到了表单名称和表单字段;然而,每次我发布时,它总是返回最初的搜索页面,而不是结果。
不确定我缺少了什么,请参阅下面的代码。
我们非常感谢您的帮助。
string url = @"http://casesearch.courts.state.md.us/casesearch/processDisclaimer.jis?disclaimer=Y";
ScrapingBrowser Browser = new ScrapingBrowser();
Browser.AllowAutoRedirect = true;
Browser.AllowMetaRedirect = true;
WebPage PageResult = Browser.NavigateToPage(new Uri(url));
PageWebForm form = PageResult.FindForm("inquiryForm");
form["firstName"] = "";
form["middleName"] = "";
form["partyType"] = "";
form["filingStart"] = "";
form["filingEnd"] = "";
form["action"] = "Search";
form["company"] = "N";
form["countyName"] = "MONTGOMERY COUNTY";
form["courtSystem"] = "B";
form["filingDate"] = "4/4/2016";
form["lastName"] = "A";
form["site"] = "CIVIL";
form.Method = HttpVerb.Post;
WebPage results = form.Submit();
Console.WriteLine(results.ToString());
您需要进行异步调用。
例如:
WebPage mainPage = await browser.NavigateToPageAsync(new Uri(url), HttpVerb.Get,"", "text/html; charset=UTF-8");
PageWebForm form = mainPage.FindFormById("some-form_id");
WebPage web = await Task.Run(() => form.Submit());
//submit不是异步的,所以让我们强制它
试试这个:
form.FormFields.Where(f => f.Name == "countyName").FirstOrDefault().Value = "MONTGOMERY COUNTY";