2016-09-17 19 views
0

私は同じ質問をした男で同じ状況にありますthis question。私は文字列として保存されたウェブサイトからいくつかのデータを取得する必要があります。ここWebブラウザーで公開されているウェブサイトのデータを取得

私の問題は

は私の計画は、ユーザーがWebサイトにアクセスすることだったので、ここで...私はからのデータを保存する必要があるウェブサイトには、データを表示するにはログインするユーザーが必要であること、ですWebBrowserを使用してログインし、ユーザーが正しいページにいるときは、データを自動的に保存するボタンをクリックします。

私は最初にリンクされた他の質問の上の答えで、使用されているものと同様の方法を使用したいと思います。

string data = doc.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText; 

私はこのようなことをやってみました:、

string data = webBrowser1.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText; 

しかし、あなたは、私はまた、他の質問への答えは言うことを見た「webBrowser1.DocumentNode.SelectNodes」

を行うことはできません彼はHtmlAgilityPackを使用していますが、私はそれをダウンロードしようとしましたが、私はそれをどうするべきかわかりません..

C#で最高ではありませんので、または少なくともそれを理解できるようにしてください。事前に

感謝:)ここ

+0

ログインページにPOSTを実行し、クッキー情報を取得するためのレスポンスを読んで、それ以上のGETリクエストにクッキー/ログイン情報を含める必要があります。試してみましたか:http://stackoverflow.com/questions/24845573/using-c-sharp-httpclient-to-login-on-a-website-and-scrape-in​​formation-from-anoth –

+0

これはやりすぎです。 .. – Mldx

+0

これはそうではありません。ログインルーチンが完成すれば、実際には2つの方法しかありません。情報で何をしたいのかに応じて、いくつかの上位レベルのソリューションがあります。私はWebReplayをしばらく前から使用していたことを覚えています。 –

答えて

1

HtmlAgilityPackの使用例である:

public string GetData(string htmlContent) 
{ 
     HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); 
     htmlDoc.OptionFixNestedTags = true; 
     htmlDoc.LoadHtml(htmlContent); 
     if (htmlDoc.DocumentNode != null) 
     { 
      string data = htmlDoc.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText; 
      if(!string.IsNullOrEmpty(data)) 
      return data; 
     } 
     return null; 
} 

編集:ブラウザでいくつかのアクションをエミュレートしたい場合は、私が代わりにセレンを使用するためにあなたをお勧めします通常のWebブラウザコントロールのここでダウンロードするリンクはhttp://www.seleniumhq.org/です。ダウンロードするにはNuGetを使用してください。これは、それを使用する方法に関する良い質問です:How do I use Selenium in C#?

+0

ありがとうございました。これはデータの取得に役立ちましたちょうどHtmlAgilityPackのインストール方法を理解するのに数分かかっていました。将来これを読んでいる人のために、Visual Studio内の(Project> Manage NuGet packages)の下で見つけることができます... 私は、プログラムを自動的にユーザ名とパスワードを入れたいのですがログインを押しますか? プログラムが起動すると、Webブラウザはログインページに移動し、自動的にログインし、その後、書き込んだコードを使用してデータを取得します。 もう一度、この作業を手伝ってくれてありがとう! :) – Mldx

+0

私の質問に答えてくれた編集。ありがとう:) – Mldx

+0

@Mldxあなたはようこそ) –

関連する問題