phpで自動相互リンク

[新着] Webテンプレートを仮オープンしました



0   名前: phplinker : 2007/09/09(日) 09:39  ID:gIYyQyhG sub-bK
はじめまして。phpを使って自動相互リンクを構築しようと思うのですが、
例えば、相手のページのソースコードを自動で読み取って、自分のサイトへのリンクが張られているかということを事前検出することは技術的に可能なのでしょうか?相手がフォーム記入して登録するときに既に次ページへのリンクを設置しているかを自動確認したいのです。もし可能なのであれば、それを実装する概念をご指導いただければ助かります。どういった命令を使ってこういう流れでやればいいんじゃないのくらいでも十分です。どうかお願いします。

1   名前: 元帥 : 2007/09/09(日) 09:39  [URL]  ID:U29FViXT sub-bK
まさにそれをBlogのトラックバックというのではないかと。
PHPで記述されたブログのソースコードを勉強すれば参考になるかもしれません。

自分で一から書くなら、ソケット通信でしょうか。
まぁ、PHPならfile_get_contents等の便利な関数が用意されていますので、受け取ったソースコードからリンクを検索すれば良かろうと思います。

# リンクが張られているのはいいけど、文字が見え難かったり、とても小さかったり、と他に考える問題があるかもしれません。
# また、あまりよろしくないサイトに悪用されないように注意して下さい。


2   名前: phplinker : 2007/09/09(日) 09:39  ID:gIYyQyhG sub-bK
ビンゴです!
その関数が知りたかったんです。
file_get_contentsで全文読み取って正規表現で自分のページへのリンクがあるかチェックすれば余裕でいけそうです。
どうもありがとうございました。不正リンクへの対処法は何とか工夫して頑張ります!

3   名前: phplinker : 2007/09/09(日) 09:39  ID:gIYyQyhG sub-bK
もうひとつ追加で質問があります。前から疑問に思ってたんですが、、
例えば自動相互リンクに登録されたリンクデータをデータベースに入れて、相互リンクページが開かれるたびにphpコードでデータベースからデータを引き出してページを作る相互リンク集を作った場合、ぶっちゃけ検索エンジンのクローラーに相互リンクの情報はキャッチされませんよね?SNSとかで個人ページの情報が検索に引っかからないのと同じことですよね?ってことは相互リンクに登録する意味がなくなってきますよね?
もうひとつ疑問なのは、アマゾンの商品とかってなんで検索エンジンに引っかかるんですかね?あれもプログラムで動的にデータベースからページを生成してると思うんですが。。そこらへんの知識があいまいなので詳しい方いたらぜひ教えてください!

4   名前: 元帥 : 2007/09/09(日) 09:39  [URL]  ID:cCAwFHb9 sub-bK
# 一つの質問につき、一つのスレッド。
# 別の質問なら再度投稿し直して下さい。

> 相互リンクの情報はキャッチされませんよね?
設計次第です。
検索エンジンはリンクを辿って情報を収集していきます。
そのページにアクセスした時、その情報が取得可能ならばキャッチされます。
ですが、登録数が多いならば検索機能を付ける事もあるでしょう。
検索条件を受け渡す時、GETかPOSTかによって大きく異なってきます。
GETの場合はリンクし易いので、a要素から検索結果のページへ導く事もあると思います。
この時、検索エンジンは検索結果のページを収集可能です。
但し、サーバーサイドで自動生成されたページは収集され難いらしいです。

> SNSとかで個人ページの情報が検索に引っかからないのと同じことですよね?
いいえ。
SNSでは一般的にログインが必要です。
外部からSNS内へリンクがはられていたとしても、ログインが必要なのでリンクを辿る事は出来ません。
逆に、SNS内の人間なら検索エンジンを自作して、情報を収集可能という事です。
キャッシュ情報で良いのなら、G○ogleからSNS内を閲覧する事も理論上は可能です。(勿論、Go○gleは、実験はしても実際に運用はしないでしょうけど)

> 相互リンクに登録する意味がなくなってきますよね?
ちょっと意味が分からんのですが…。
回収されずとも、あなたのページから相互リンク相手のページへ行けるのですから問題無いと思うのですけど。
それとも、相互リンクのページが検索エンジンに回収され、結果的に検索エンジンから相互リンク相手のサイトへ誘導し易くしたいって事?

> アマゾンの商品とかってなんで検索エンジンに引っかかるんですかね?
リンクを辿ったら、Amaz○nの商品ページに辿り着いたから。
アフィリエイトの効果もあるでしょうし。

まとめ
・あるURIにアクセスした時に得られる情報が、検索エンジンが回収する情報である。
・そのURIにアクセスするには、リンクを辿る必要がある。
・検索エンジンが行動を開始する時、最初に回収するURIが幾つか与えられる。

※ 検索エンジンの仕様は公開されているわけではありません。
様々な媒体より、総合的に判断しただけです。
将来的に変わるかもしれませんし、現時点で変わっているかもしれません。

5   名前: phplinker : 2007/09/09(日) 09:39  ID:gIYyQyhG sub-bK
元師さん
まず同じスレに質問をふたつして申し訳ありません!が、ここでは話が発展してしまいましたのでこのまま行かせていただきます。
またご丁寧な返信ありがとうございます。

>> 相互リンクに登録する意味がなくなってきますよね?
ちょっと意味が分からんのですが…。


自分が凄く言葉足らずでした。申し訳ないです。元師さんのコメントを読んで自分が言いたかったことを整理して結論を出してみたのですが、


SNSについて
データベースからリンク情報をとりだしてSNSと同じ原理で(ログイン時に記憶するクッキーやセッションの各ユーザー固有の情報を元にデータベースにアクセス)PHPで動的に内容を読み込むとなるとクローラー(特別なクッキーやセッションを持たない)が読み込めるページソースからはユーザー情報が隠されることになるのでユーザー固有ページの情報はクローラにキャッチされない。

アマゾンの商品ページがデータベースからの動的なページ生成にも関わらず検索エンジンにひっかかる理由
→データベースへアクセスする際のキー情報をクッキーではなくURLのクエリに入れているから。

相互リンク登録の意味がないといった理由
→相互リンクの主な目的が本来のウェブ間の誘導ではなく検索ランキングアップ(SEO)であれば、検索クローラーに認識されないページ自体に相互リンク登録をするのは何の意味もないので作ってもそのメカニズムを知っている人は誰も登録しないのではないか、また知らない人にとっては詐欺になるのではないかと心配しました。

ですがよく考えてみた結論をいいますと、クッキーやセッションをキーにデータベースアクセスする検索に引っかからない自動相互リンクという状況自体が考えにくいので、こんな議題を定義した僕が間違っていたと思いました。フツーURLのクエリで作りますもんね。どー考えても。

どうも大変お騒がせしました。
ありがとうございます!


一覧へ戻る