0

私はこのURLのデータをスクレイピングするためにプロキシを使用しています:CNN記事

記事のテキスト全体を取得したい(見出しは必ずしも必要ではありません)。だから私はこれを試しました:

$(data).find("div:contains('Across the river from Cairo')");

これはテキストの一部を見つけますが、私がそれを使って自分のことをするとき、myThing = $(this).text();それは単なる記事以上のものを手に入れているようです。これは、HTMLの構築方法と関係がある可能性があります。ソースを見ると、記事のテキストがに限定されていることがわかります。pただし、div:containsinをに変更するp:containsと、最初の数行しか表示されません(明らかに)

ですから、私の質問は、HTML構造に関係なく、記事のテキストを取得するにはどうすればよいかということです。私は言う何か(コード)を探しています:

find.('Across the river from Cairo') and get this text and all the text underneath this text();  
4

2 に答える 2

2

セレクターを使用して、その記事から目的の結果を取得していますp.cnn_storypgraphtxt。記事全体を取得するには、$("p.cnn_storypgraphtxt").text()またはを使用できます

$("p.cnn_storypgraphtxt").map(function(){return $(this).text;}).get().join("\n");

特定の式に続くテキストを.last()取得するには、最後に選択されたノード (つまり、DOM の最下部) を取得してから.nextAll()

$(":contains('Across the river from Cairo')").last().nextAll().text()

しかし、それには多くの不要なものが含まれます。

于 2012-12-22T12:21:19.840 に答える
0

使ってみてください

$someString = $(data).find("div:contains('Across the river from Cairo')").html();

その文字列を操作などに使用します。

于 2012-12-22T11:45:34.743 に答える