私は、プログラムでアドレスを取得するためにクロールしている米国議会の各メンバーのWebサイトのリストを持っています。多くのサイトは基礎となるマークアップが異なりますが、何百ものサイトが私が書いたスクリプトに対して期待される結果を提供していないことがわかり始めるまで、これは最初は問題ではありませんでした。
考えられる原因を評価するためにもう少し時間をかけた後strip_tags()
、結果を呼び出すfile_get_contents()
と、ページのソースのほとんどが何度も消去されていることがわかりました。これは、HTMLを削除するだけでなく、私がスクレイプしたかった非HTMLを削除することでもありました。
そこで、へstrip_tags()
の呼び出しを削除し、英数字以外のすべての文字を削除する呼び出しに置き換えて、プロセスをもう一度実行しました。それは他の結果をもたらしましたが、それでも多くを欠いていました。今回は、正規表現が目的のパターンと一致していなかったためです。返されたコードを確認したところ、HTML属性の残りがテキスト全体に散在していて、パターンが壊れていることに気付きました。
これを回避する方法はありますか?不正な形式のHTMLの結果ですか?私はそれについて何かすることができますか?