skillup

技術ブログ

PHP

携帯サイト取得手法

投稿日:

PHPでスクレイピングの仕事をよくやるんですが、携帯サイトを取得してほしいという要望があり、少し調査をすることに。

携帯サイトといってもドメイン以下のディレクトリで/で区切ってsample.domain.jp/sp/XXXなどと携帯サイト自体を分離している作りのところもあれば、URL自体完全に一緒のところもあります。

User-Agentの設定

PHP云々の前にWebアプリケーションが携帯サイトか否かを判定する場合どのように判定しているでしょうか。

これはHTTPリクエストを飛ばす際に、User-Agentというパラメータがあり、この中にクライアントの情報が入っています。

Google ChromeやFireFoxのヘッダーのデバッガでみれば下記のような情報が入っています。

User-Agent一覧

http://www.openspc2.org/userAgent/

ようはここでどんな端末からアクセスしているかをみていますので、これを書き換えてあげればOKです。

ini_setでUser-Agentを書き換える

ini_setでUser-Agentを設定します。

ただこれですとファイル中のAgentがすべて携帯サイトになってしまいます。

http://worktoolsmith.com/2012/02/php-http-user-agent/

HTTP_Requestを使う場合

http://blog.livedoor.jp/rout1783/archives/51125738.html

その他cURL関数など

http://xirasaya.com/?m=detail&hid=320

またブラウザで携帯サイトをみる場合はfirefoxのuser agent switcherというプラグインがかなり使えます。

File Mobile Simulatorが有名で以前はこれを使っていたのですが設定が面倒になっており、上記のプラグインのほうが使えましたね・・・。

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

phpのライブラリ(mcrypt)インストール

先日、ローカルで開発していたPHPをサーバーにアップして、composerでライブラリをアップデートしようとしたところ、”The mcrypt extension is missing. …

no image

ロケール情報について

本日、csvファイルを読み込む処理を行っていたんですが、コンソールからコマンドを打つと化けずに、ウェブ上で見ると化けるという現象が発生。 csv,プログラムともに文字コードがutf8で統一していること …

no image

form以外でのPOST送信

前回の記事に引き続きですが、APIを叩く側はformでデータを送るのではなく、コードの中にPOSTする処理を書きます。 選択肢としては curlコマンドを使う file_get_contentsを使う …

no image

PHPでの日付関数の扱い方

このブログの投稿数ももう少しで150近くになりました。 で、9割以上がJavaなんですが、私はPHPのスクールを運営しています(笑) ということでPHPのスキルを忘れてはいけないということで、今日はち …

no image

CakePHPのcomponent

CakePHPのComponentについて。 CakePHPでは各コントローラに共通の処理をComponentとしてモジュール化することができます。 わかりやすいところでいえば認証のAuth,Sess …