HTML을 검색 한 후 데이터를로드하는 일종의 플래시 플러그인이있는 웹 사이트를 긁어 내려고하고 있습니다. 다음 객체가 페이지에 수신되었습니다.플래시 플러그인 웹 사이트에서 웹 스크래핑 시도
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="250" HEIGHT="20" id="Preloader"><PARAM NAME="movie" VALUE="/images/preloader.swf">
<PARAM NAME="quality" VALUE="high">
<PARAM NAME**strong text**="bgcolor" VALUE="#FFFFFF"><EMBED src="/images/preloader.swf" quality="high" bgcolor="#FFFFFF" WIDTH="250" HEIGHT="20" NAME="Preloader" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT>
wireshark에서받은 데이터를 찾으려고 시도했지만 행운이 없습니다. 이 플래시 플러그인에 대한 지식이나 그것이 작동하는 방식은 전혀 없습니다. 나는 최악의 시나리오를 추측하여 나는 이것을 할 수 없을 것이다.
HttpWebRequest mainRequest = (HttpWebRequest)(WebRequest.Create(URL));
mainRequest.Method = "GET";
mainRequest.Proxy = null;
WebResponse mainResponse = mainRequest.GetResponse();
StreamReader dataReader = new StreamReader(mainResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string data = dataReader.ReadToEnd();
dataReader.Close();
mainResponse.Close();
return data;
는 아무도 내가이 데이터를 수신하거나 수신되기 전에 데이터가 HTML로 주입 할 수의 WebResponse를 대기 할 수있는 방법을 알고 있나요. 어떤 도움이라도 대단히 감사하겠습니다.
업데이트 : 플래시 개체로 총을 조금 올린 것 같습니다. 테이블을 채우는 동안 이것은 로딩 애니메이션 일 뿐이라고 생각합니다. 나는 무슨 일이 일어나고 있는지보기 위해 피들러를 사용 해왔다. 로딩 div와 플래시 객체가 포함 된 요청 후 페이지가 반환됩니다. 몇 초 후 데이터가 준비되면 다른 페이지가 데이터와 함께 반환됩니다. 내가 기억할 수있는 것 (집에 없으므로 지금은 확인할 수 없음)에서 새 페이지는 원본과 동일한 요청 헤더를가집니다. 피들러에서 json 또는 ajax 데이터가 없습니다. Theres 클라이언트에서 볼 수있는 새로 고침을 일으키는 스크립트가 없습니다. 이 문제를 일으키는 원인을 이해하지 못합니다.
Ive는 웹 브라우저 객체를 간단히 살펴 보았지만 현재 약 200 페이지 정도 긁어 모으고 있으며 현재 1 분 정도 걸리면 성능이 크게 좋아질 것이라고 상상합니다. 나중에 플래시 객체가 업데이트 소스가 아니라는 것을 확인하기 위해 amf 뷰어를 시험해 보겠습니다.
서버가 테이블 준비가되었을 때이 페이지를 재전송 할 것으로 추측합니다. 서버가로드 div를 찾고이를 데이터 테이블로 바꾸면 전체 페이지가 재전송됩니까? 아니면 아약스/json 데이터 에서이 표시 wouldnt? 서버가 데이터를 다시 보내는 경우 새 페이지를 보낼 준비가 될 때까지 응답을 어떻게 열어 둘 수 있습니까?
감사합니다. JM.
나는이 정보를로드하기 전에이 정보를 얻기 위해 링크에 매개 변수를 추가 할 수 있음을 알았습니다. 필자는 모든 답변이 매우 도움이되었지만, 결국 답을 찾는데 도움이되었지만,이 솔루션을 올바른 것으로 표시했습니다. – JMG