2017-05-23 9 views
0

웹 페이지를 긁어 모으려고합니다. 반환 할 요일 데이터를 선택하는 숨겨진 컨트롤이 포함되어 있습니다. 값을 수정하고, 텍스트를 수정하고, 전송되는 POST 데이터를 수정하여 사용하지 않았습니다. 되돌아 간 VIEWSTATE 데이터가 선택된 날짜를 제어하는 ​​것으로 보입니다.viewstate 웹 스크래핑 업데이트

텍스트 상자에서 날짜 값을 변경하려고 시도했지만 제출을 요청했지만 작동하지 않습니다.

VIEWSTATE가 업데이트되도록 컨트롤의 클릭을 시뮬레이트하기 위해 호출 할 Java 스크립트를 파악할 수있는 방법이 있습니까?

저는 C# 및 WebBrowser 컨트롤을 사용하고 있습니다. 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")); 
    }); 

답변

0

에게 모든 .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"); 
}