-2

私はこの質問を見てきました。これは非常に素晴らしく有益です。ただし、かなり一般的なシナリオは扱いません。

多数の Web サイト (または同じドメイン内のページでさえも) をスクレイピングする必要があるとしますが、その Web サイトの作成者は自分のコードを十分に気にかけておらず、「ちょっと機能する」重大な不正なコードをいくつか持っています。そのウェブサイトから情報を取得する必要があります。

この場合はどうすればいいですか?理想的には行かないでください。

出来ますか?RegExp に戻す必要がありますか?

4

3 に答える 3

4

DOM パーサーが必要です。PHPには1つがあります。そして、いくつ かの 代替手段があります(さらに...それらについてはグーグルで検索してください)。必要に応じて、"文字化けした HTML" trhu HTML Purifierを実行することもできます。

于 2012-07-18T17:23:29.547 に答える
0

サイトをどのようにスクレイピングしているのかはわかりませんが、RegExp を使用すると、スクラップ コードに多くの条件を追加できます。フットプリントの数と正規表現のスキルによっては、時間がかかる場合があります。

サイトの HTML で Tidy を使用することもできますが、これは IMO と同様に奇妙な結果につながります。

于 2012-07-18T17:28:40.823 に答える
0

PHPである必要がありますか?Python にはBeautiful Soupという素晴らしいライブラリがあります( 「あなたはそのひどいページを書いたわけではありません。そこからデータを取得しようとしているだけです」 )。私の経験から、オプションがある場合は、PHP が取得できるクリーンなファイルにノードを解析するための簡単な Python スクリプトを作成することを強くお勧めします。

(PHPがタイトルに含まれていることを知っておいてください。これはあなたの質問に直接答えているわけではありません。Pythonのオプションがない(または嫌いな)場合は、お詫びします。単に良い代替案を提示したかっただけです。)

于 2012-07-18T17:30:54.173 に答える