3

私はすでに1年間プログラミングを行っていますが、Webクローラーなどには少し慣れていません。ここで私の問題を説明しようとしていますので、ご容赦ください。

Yahoo! からの情報を解析しています。ニュース、そして私は欲しいもののほとんどをなんとか手に入れましたが、私を困惑させた小さな部分があります.

例: http://news.yahoo.com/record-nm-blaze-test-forest-management-225730172.html

コメントの親指を上に向けて親指を下に向けるアイコンの横にある数字を取得したいと思います。Chrome ブラウザーで「Inspect Element」を使用すると、探す必要があるもの、つまり div クラス「ugccmt-rate」の下の em タグが明確にわかります。ただし、Python プログラムでこれを見つけることができません。問題の原因を突き止めようとして、クリックしてページのソースを表示しましたが、このタグがないようです。この問題にどのようにアプローチすればよいか知っていますか?これは、実行後にのみ情報を表示するページ上の JavaScript と関係がありますか? 正しい方向へのいくつかの指針をいただければ幸いです。

ありがとう。

4

2 に答える 2

2

このページは JavaScript によって生成されています。

最初にウェブサイトのモバイル版があるかどうかを確認してください。そうでない場合は、API または RSS/Atom フィードを確認してください。他に何もない場合は、JavaScript が何をどこからロードしているかを手動で把握するか、Seleniumを使用して、解析のために JavaScript をレンダリングするブラウザーを自動化する必要があります。

于 2012-06-03T06:41:20.147 に答える
1

Firefox の Web コンソールを使用すると、ページがスクリプトを実行するときに実際に行っているリクエストを簡単に確認でき、必要なデータを返す URI を特定できます。次に、その URI を Python スクリプトで直接要求し、そこからデータを引き出すことができます。おそらく、JSON など、Python が既に解析するライブラリを持っている形式です。

ヤフー!ブラウザ(ユーザーエージェントヘッダー)、Cookie、またはリファラーのチェックなど、スクリプトでこれらのデータファイルにアクセスできないようにするために、サーバー側にいくつかのものがある場合があります. これらはすべて十分な忍耐力で偽造することができますが、それらの存在を軽視する必要があるという兆候と見なす必要があります. (また、特定の期間に行うことができるリクエストの数を制限することもできますが、これは回避できません。)

于 2012-06-03T06:45:25.073 に答える