0

したがって、これは複雑な質問かもしれませんが、次のようになります。

node.js を使用して、ローカルでホストされるシンプルな Web スクレイパーを作成しています。ソースファイルでスクレイピングする URL を手動で定義すると、完全に正常に動作します。現在、ユーザーに選択した URL を入力させようとしています。次に、入力した URL を空の div に追加します。理想的には、cheerio を使用してその div のコンテンツを取得できます。

残念ながら、スクリプトが実行されている同じページで作成されているデータを解析する方法がわかりません。どんな洞察も大歓迎です!

var cheerio = require("cheerio");

    response.write('<div id="newsStory"></div>');
    response.write("<script type='text/javascript'>var userPrompt = prompt('input a url');");
    response.write("if(userPrompt) {document.getElementById('newsStory').innerHTML = userPrompt;}");
    response.write("</script>");

    var $ = cheerio.load();

    var url = $('div#newsStory').text(); //does not work!

    var url = "http://www.cnn.com/2013/09/23/us/south-carolina-powerball-winner/"; //manually inputting a url works!
4

1 に答える 1

1

あなたが抱えている問題は、ブラウザー側の DOM と Cheerio がサーバー側に持っているドキュメントを混在させていることです。divnewsStoryはクライアント側であるため、そのコンテンツをサーバーに送信する方法を見つける必要があります。

text()Cheerio 構文に精通しているので、メソッドが同じように機能するクライアント側で jQuery を使用でき、それを使用$.post()して URL をサーバーに送信できます。

于 2013-09-24T22:41:13.553 に答える