更新视图状态 Web 抓取



正在尝试抓取网页。 有嵌入式隐藏控件,可以选择要返回哪一天的数据。 我修改了值,修改了文本,修改了正在发送的POST数据,但都无济于事。 返回的 VIEWSTATE 数据似乎控制着所选的日期。

我尝试更改文本框中的日期值并调用提交,但这不起作用。

有没有办法找出要调用哪个 java 脚本来模拟对控件的单击,以便更新 VIEWSTATE?

我正在使用 c# 和 Web 浏览器控件。 我尝试了WebRequest/修改后的POST方法,但没有奏效。

这是创建日期选择器的代码

Sys.Application.add_init(function () {
    $create(Infragistics.Web.UI.WebDatePicker, { "id": 
    "ctl00_WebSplitter1_tmpl1_ContentPlaceHolder1_dtePickerBegin", "name": 
    "ctl00_WebSplitter1_tmpl1_ContentPlaceHolder1_dtePickerBegin", "props": 
    [[[], { "c": { "prop1": "["2017-4-23-0-0-0-0,,","04/08/03","*0322","04/08/03",29,0,"_ig_def_dp_cal","","500,3,300,3,0,200,3,100,3,0
    "]", 
    "prop": "1,64,,0,1,1,,,0,,,,,6,,200,,2038:2040:2032,igte_NautilusFocus,igte_NautilusHover,igte_NautilusNullText,igte_NautilusInnerFocus,igte_NautilusInnerHover", "uid": "ctl00$WebSplitter1$tmpl1$ContentPlaceHolder1$dtePickerBegin", "buts": "igte_NautilusButtonHover,igte_NautilusButtonPressed,igte_NautilusButtonDisabled,igte_NautilusButtonFocus,../ig_res/Nautilus/images/igte_customHover.gif,../ig_res/Nautilus/images/igte_customPress.gif,../ig_res/Nautilus/images/igte_customDisable.gif," } }], , , []] }, null, null, $get("ctl00_WebSplitter1_tmpl1_ContentPlaceHolder1_dtePickerBegin"));
    });

下载了所有 .axd 文件并搜索,直到我找到此控件的set_text方法。

然后:

string szJava = string.Empty;
szJava = "a = $find("ctl00_WebSplitter1_tmpl1_ContentPlaceHolder1_dtePickerBegin"); a.set_text("5/20/2017");";
object a = wb.Document.InvokeScript("eval", new object[] { szJava });
if (webDatePicker != null)
    webDatePicker.InvokeMember("submit");
HtmlElement button = wb.Document.GetElementById("ctl00$WebSplitter1$tmpl1$ContentPlaceHolder1$HeaderBTN1$btnRetrieve");
if (button != null)
{
     button.InvokeMember("click");
}

最新更新