2017-09-09 1 views
0

私は技術的な問題に直面していますが、回答を見つけるためにいくつかの記事を閲覧しましたが、どのWebサイトからも適切な回答を得ることができませんでした。ScrapySharpを使用してWebページデータをクロールできない

プロジェクト用にScrapySharpを使用して、Webページデータをクロールしています。この問題は、http://edition.cnn.com/POLITICSウェブサイトからデータをクロールしようとしたときに発生しました。

まず、IEでページを読み込み、開発ツールを選択してタグを調べました。私はScrapySharp

ScrapingBrowser browser = new ScrapingBrowser(); 
WebPage rootPage = browser.NavigateToPageAsync(new Uri(url)); 
HtmlNodeCollection rootNodes = rootPage.Html.SelectNodes("//div[@class='cd__content']"); 

を通じて上記WebページをロードするとさらにrootNodesため、結果として示し、私は私のコード「// divの[クラス@ = 『cd__content』]」のために必要なタグを選択した後、 null

深く調査すると、「SECTION」タグがロードされているときに、上記のcd__contentが「SECTION」タグ内にあることがわかりました。しかし、IEやChromeを使ってInspectを実行すると、すべてのタグが情報で満たされているため、要素を選択することができますが、プログラムでページを読み込んだ場合は読み込まれません。 私の質問は、どのようにScrapySharpを使用してすべての情報を埋めてページを読み込むことができますです。

エキスパートよろしくお願いします。

+0

があなたをしましたrootPageオブジェクトをチェックして、そこに実際のHTMLを取得しましたか?それは持っているはずのすべてのHTMLコンテンツを持っていますか?はいの場合は、xpathに問題がある可能性があります。 – Nick

答えて

0

ページのネットワークトラフィックを分析すると、javacriptがページの各コンテンツゾーンにコンテンツを読み込むための呼び出しをhttp://edition.cnn.com/data/ocs/section/politics/index.htmlから行うことがわかります。これらのリクエストに対する応答には、ページに表示されるHTMLとコンテンツが含まれます。

あなたはそれを確認し、同様の要求を自分で作る、または1つまたはそのRSS feedsのより多くのニーズに会って、コンテンツのより多くの解析可能なセットをご提供かどうかを確認する必要があります - 例えば:http://rss.cnn.com/rss/cnn_allpolitics.rss

関連する問題