C# Web Scraping

C# -- IE automation #1 -- 시작하기

자유프로그램 2016. 2. 2. 12:38
반응형

C# -- IE (Internet Explorer) automation #1 -- 시작하기


환경 : windows 7 64bit, visual studio 2013 community 


참고 : http://stackoverflow.com/a/20845383

       https://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx

       http://blog.clockahead.com/search/label/IE   ---> IE 자동제어 관련 글들 (일본어이므로 한글번역하여 보자.)

 



<< 미션  >>

IE (internet explorer) 를 2개 실행시키고, 각각 구글과 네이버로 이동한후, 5초후 IE 종료하자 



1. Console 프로젝트를 만들자. 




2. Internet Explorer 실행하기위해 Microsoft Internet Controls (SHDocVw) type libraryReferences 에 추가해야한다.







3. References에 SHDocVw 추가됨.




4. SHDocVw 를 이용하여 InternetExplorer 인스턴스 만드는 예제. 


--> 5초후 종료 시간에 네이버가 연결 안되고 종료되면, 10초로 늘리면 됨 !!!



** Navigate vs Navigate2

Navigate  -- 첫번째 URL 매개변수 type == String

Navigate2  -- 첫번째 URL 매개변수 type == object 또는 dynamic

  


   ** COM 의 Variant 타입은 object 로 사용한다. c# 4.0 부터는 dynamic 으로 사용 가능.




<< 코드 >>      

IEautomation.zip



using System;
using System.Threading.Tasks;
namespace IEtest1
{
class Program
{
static void Main(string[] args)
{
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
SHDocVw.InternetExplorer IE2 = new SHDocVw.InternetExplorer();
object Empty = 0;
object URL = "http://www.google.com"; // object 혹은 dynamic type
IE.Visible = true;
IE.Navigate2(ref URL, ref Empty, ref Empty, ref Empty, ref Empty);
// IE.Navigate2(ref URL); // 이렇게해도 됨.
System.Threading.Thread.Sleep(3000); // 3초후 새로운 IE 창 연다.
String url2 = "http://www.naver.com"; // String type
IE2.Visible = true;
IE2.Navigate(url2, ref Empty, ref Empty, ref Empty, ref Empty);
// IE2.Navigate(url2); // 이렇게해도 됨.
System.Threading.Thread.Sleep(5000); // 5초후 종료 --> 필요하면 10초로 늘려라!!
IE.Quit(); // IE 종료
IE2.Quit();
}
}
}
view raw IEtest1.cs hosted with ❤ by GitHub




반응형