1

別の無料のウェブページをスクリーンスクレイピングし、いくつかの図をうまく表示する無料のアプリを開発しようとしています。この Web ページは定期的に更新されるため、リロードするのではなく、アクティブなときにアプリを更新できるようにしたいと考えています。

ロードすると、通常の Initialize が実行されてから呼び出されますHtmlWeb.LoadAsync("URL", DwnldComplete);。次に、特定の div タグで内部テキストを検索するだけです。

私の論理は、おそらく間違っていましたがHtmlWeb.LoadAsync("URL", DwnldComplete);、Web ページを再処理するために行を呼び出しただけの更新ボタンを用意することでした。ただし、デバッグしてステップスルーすると、ロード時に開かれた元のページがすべて処理されます。実際には更新されたページを取得するわけではありません。Web ページには日時スタンプがあるため、これを確認できます。

コンソールアプリでリフレッシュしてみました

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("URL");

そしてそれはうまくいきます。多分何か関係がありLoadAsyncますか?

それから、新しく初期化された HtmlWeb が役立つかもしれないと思ったので、これを試してみましたが無駄でした。

HtmlWeb web = new HtmlWeb();
web.LoadCompleted += new EventHandler<HtmlDocumentLoadCompleted>(DwnldComplete);
web.LoadAsync("URL");

ハンドラーはこちら

void DwnldComplete(object sender,HtmlDocumentLoadCompleted  e)
    {
        if (e.Error == null)
        {
            HtmlDocument doc = e.Document;
            if (doc != null)
            {
              //Find text
            }
        }
    }

どんな助けでも感謝します、ありがとう。

4

0 に答える 0