2017-01-31 1 views
-1

정규 표현식을 사용하여 HTML에서 문자열을 가져 오려고하는데 로컬 HTML 파일에서 작동합니다. 내가 필요로하는 것은 내 프로그램을 사용하여 웹 사이트에 로그인하여 거기에서 HTML을 얻는 것입니다.로그인을 위해 브라우저를 열고 C#에서 콘텐츠를 가져 오는 방법

문제는 행운을 들이지 않고 3 가지 다른 코드를 사용하여 로그인하려고 시도했기 때문입니다 (나는 3 개의 코드를 찾았습니다). 웹 사이트는 HTTPS이며 Internet Explorer도 지원하지 않습니다. 피 들러 또는 디버깅 도구를 사용하고 싶지는 않습니다. 나는 속도에 신경 쓰지 않고 간단한 브라우저를 열어 로그인하고 표시된 콘텐츠에서 HTML 코드를 가져오고 싶다.

크롬/mozilla/opera를 열고 프로그램에 표시된 HTML을 전송할 수있는 방법이 있습니까? 또는 불가능할 경우 보편적 인 로그인 방법이 있습니까?

+0

간단한 'HttpWebRequest'는 무엇입니까? –

+0

작동하지 않습니다. 웹 사이트에서 코드의 로그인 방법에 "오류 로그인" 을 반환합니다. –

+0

그리고 어떻게 거기에 로그인합니까? 어떤 전화를합니까? –

답변

0

크롬/mozilla/opera를 열고 프로그램에 표시된 HTML을 전송할 수있는 방법이 있습니까?

예를 들어 Selenium WebDriver를 사용할 수 있습니다. 그것은 당신이 목표 웹 페이지에 버튼을 누르거나, 텍스트 입력 등을 자동화 할 수 있습니다. 나는 그것을 "디버깅 툴"이라고 부르지 않을 것이다. 테스트 프레임 워크와 같다.

  1. 셀레늄 WebDriver
  2. 셀레늄 WebDriver 지원 클래스

정말 깔끔한 사용 샘플 here 있습니다 :

// Initialize the Chrome Driver 
using (var driver = new ChromeDriver()) 
{ 
    // Go to the home page 
    driver.Navigate().GoToUrl("https://yourdomainhere.net"); 

    // Get the page elements 
    var userNameField = driver.FindElementById("username"); 
    var userPasswordField = driver.FindElementById("password"); 
    var loginButton = driver.FindElementByXPath("//input[@value='Login']"); 

    // Type user name and password 
    userNameField.SendKeys("admin"); 
    userPasswordField.SendKeys("12345"); 

    // and click the login button 
    loginButton.Click(); 

    // Extract the text and save it into result.txt 
    var result = driver.FindElementByXPath("//div[@id='case_login']/h3").Text; 
    File.WriteAllText("result.txt", result); 
} 

내가 노력하고는 NuGet 모든 당신이 필요로하는 패키지가 정규 표현식을 사용하여 HTML에서 문자열을 가져 오는 방법

I have small hunch that you.. shouldn't. 페이지에서 원하는 데이터를 추출하는 데 드라이버를 사용할 수 있습니다.

관련 문제