2017-01-31 14 views
-1

正規表現を使用してHTMLから文字列を取得しようとしていますが、ローカルのhtmlファイルで動作します。私が必要とするのは、自分のプログラムを使ってウェブサイトにログインし、そこからhtmlを取得することだけです。サインインのブラウザを開いてC言語でコンテンツを取得する方法

問題は、3つの異なるコードを使用してログインしようとしたことです(私は3つのコードを見つけました)。ウェブサイトはHTTPSであり、Internet Explorerもサポートしていません。フィドラーやデバッグツールを使用したくない。私はスピードを気にせず、簡単なブラウザを開き、サインインし、表示されたコンテンツからHTMLコードを取得するだけです。

chrome/mozilla/operaを開いて、表示されたHTMLをプログラムに転送する方法はありますか?それとも、不可能な場合は、普遍的なサインイン方法がありますか?

+0

単純な 'HttpWebRequest'はどうでしょうか? –

+0

動作しません。ウェブサイトは、コードからのログイン方法で「エラーサインイン」 を返します。 –

+0

そして、そこにどのようにサインインしますか?どのような呼びかけをしていますか? –

答えて

0

chrome/mozilla/operaを開いて表示されたHTMLを自分のプログラムに転送する方法はありますか?

たとえば、これにはSelenium WebDriverを使用できます。それはあなたがターゲットのWebページ上でボタンの押下やテキスト入力などを自動化することができます。私はそれを「デバッグツール」と呼ぶことはありません。テストフレームワークのようなものです。 NuGetはあなたが必要とするすべてのパッケージがあります。

  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); 
} 

私がしようとしています正規表現を使用してHTMLから文字列を取得する

I have small hunch that you.. shouldn't.ドライバを使用して、ページから必要なデータを抽出することができます。

関連する問題