- ベストアンサー
RSS非対応サイトから情報収集
RSS非対応サイトのURLを登録するとHTMLのアンカーが張られている箇所だけ収集して、RSS(XML)に変換しているサイトがありました。 どういう仕組みになっているのか知りたいのです。 URLからHTMLファイルをDLして、http://で始まるパスをマッチングさせて抽出しているのでしょうか。 その場合、PHPとjavascriptを使ってそういうことを作ることは可能なのでしょうか。 似たようなシステムを作られた方がいらっしゃったら 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以前にexpatで試したときには実用的な速度にならなかったため断念しました。某大手サイトのエンジニアの知り合いもPerlの正規表現でやっていると言ってましたし。 1項目の「見出し」と「リンク」だけを抜き出せば良いので、実際にパースする必要があるのはhtml全体の一部分であることが多いですね。例えば、<a href=" ([^"]+)"[^>]*>([^<]+)</a>?(([0-9]{4})/([0-9]{2}/([0-9]{2}))?)でリンクと見出しと日付が拾えますが、これを各サイトのhtmlに合わせていく必要があります。phpの場合、eregとpregがありますが、eregはpregの10倍ぐらい遅いので、pregで。
その他の回答 (1)
- rioriost
- ベストアンサー率100% (4/4)
phpを使って正規表現でhtmlをパースしてます。RSSには変換していませんが、DBに格納しているのでRSSにしようと思えばすぐ出来ますね。
- 参考URL:
- http://rio.st/news_index.php
補足
何度もすみません。的外れな質問かもしれないのですが、RSSの場合、PHPだとXMLパーサという関数を使ってXMLを解読?読み込んでいると思うのですが、この場合、XMLパーサでHTML文書をパースできるようにすればいいのでしょうか。 具体的にはexpatをHTML対応化にするためエレメントの終了タグの省略を許せばいいのでしょうか。 私の未熟なスキルでの質問なので、意味不明な部分はご指摘下さい。
お礼
ご丁寧にありがとうございます。 さっそく、教えていただいた内容で やってみようと思います。