2012-02-01 6 views
0

내 문제는 동시에 여러 웹 브라우저를 실행할 수 없다는 것입니다. 하나의 프로그램에서 여러 웹 브라우저

내가 사이트 1에서 webbrowser1를 사용하여 데이터를 폐기하고 사이트 2에서 webbrowser2를 사용하여 다른 데이터를 스크랩 할

는 첫 번째 webbrowser는 일을하고있다.

별도의 스레드에서 실행하려고했지만 작동하지 않았습니다. main 이전에 STA ApartmentState에 관한 소식을 들었지만 아직 존재하지 않습니다.

두 웹 브라우저를 같은 시간에 어떻게 작동시킬 수 있습니까?

+1

WebClient 또는 원시 프록시를 사용하지 않는 이유는 무엇입니까? 그들은 사용하기가 어렵지 않습니다. – CodingBarfield

답변

2

데이터를 스크랩하려는 웹 사이트가 JavaScript를 통해 HTML을 동적으로 변경하지 않는 경우이 경우 HtmlAgilityPack을 사용하면됩니다. 그것은 내 견해와 함께 일하는 것이 가장 쉽고 쉬운 일입니다. 다른 스레드에서 HtmlDocument의 다른 인스턴스를 사용하여 여러 웹 사이트의 데이터를 비동기 적으로 스크랩 할 수 있으므로 여러 브라우저의 문제를 해결할 수 있습니다.

1

사실 WebBrowser은 단일 스레드 환경에서만 실행할 수있는 ActiveX 구성 요소입니다. 비슷한 질문이 최근에 제기되었습니다. Trouble with timers and threads

내 제안은 동시에 여러 위치에서 데이터를 가져 오는 대신 WebClient 클래스를 사용하는 것입니다.

관련 문제