pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

PHP:リダイレクト0秒転送にやられる。サイト内・サイト外リンク判定…

PHPでDOMとかWebスクレイピングし、RSS設置してないサイトの更新情報を取得しようと妄想している爺です。

DOMするとき、問題なのはどのHTMLタグを対象にするか、ということです。サイトによって使い方が違うですから、気をつけないといけませぬ。

次に気づいたのが、代表頁に表示される個別記事リンク先が、必ずしも同一サイト内でない場合がある、ということです。まあ、これは、aタグ内のリンク先頭4文字がhttpであるかどうかで判断できる、と見通しておりました。しかし、外部サイトになると、当初アクセスしたサイトの目標タグとは異なる使い方になっております。ということで、外部サイトへのリンクした記事は、対象からはずすことにしたです。先頭4文字がhttpなら袖にする、というような単純な方法を思いついたです。

内部リンク(相対指定)だけど、その先で0秒転送し外部リンクへ

しかし、小見出しのような例にぶちあたりました…シクシク。
代表ページに表示される個別記事へのリンクは、サイト内を指す「相対指定」になっておりました。シメシメ…。
ところが、実際に表示されるのは、外部サイト…。おかしいな~と理屈を考えてみました。
f:id:PageTAKA:20150706095237g:plain

Xサイトのように、代表頁で外部リンク(絶対指定)になっていれば、およそ困ることはありませぬ。
ところが、Zサイトのようになっていた…。

Zサイト代表ページには内部リンク(相対指定)となっている。しかし、遷移先(リンク先)は、0秒後に本来のリンク先である外部リンク(絶対指定)となっている。0秒転送の「リダイレクト」設定がされている、というのが良いのかな。

Zサイトだと、一見「内部」と代表ページ上で見えるものの、結果は異なる、という…。そして、その0秒HTMLファイルは、見えない。また、HTMLでやっているかどうかも不明…。

現在ブラウザで表示しているURLと、PHPで呼び出したURLが一致しているかどうかチェックが…必要なのかぁ~?


え~、そんなこと繰り返してたら、サーバ占有時間をすぐに超過するようなことになるぞ…う~ん…とモンドリウツ…。

というようなこともあり、昨日は悩み多き(≒ぼんやりしている爺)状態なのでありました。