PHPについて質問です。


先日に引き続きWEBマーケティングをしているのですが、

ヤフオクの検索入力のところにPHPで文字を入力してPHPで検索ボタンを押したいと考えています。
その後引き続きデータを取得したいのですが

PHPで検索欄に指定した文字をおいて、検索ボタンを押すことは可能でしょうか?

具体的には

http://auctions.yahoo.co.jp/jp/

の検索に

イチロー シャツ

と全角スペースをひとつ空けて 検索をしURLに移動したいです。

URLへ飛ぶと以下のようなURLになるので

http://search.auctions.yahoo.co.jp/jp/search/auc?p=%A5%A4%A5%C1%A5%ED%A1%BC%A1%A1%A5%B7%A5%E3%A5%C4&auccat=0&alocale=0jp&acc=jp

このURLのHTMLを取得したいと考えております。

お手数をおかけしますがわかるかたおりましたらご回答をお待ちしております。

回答の条件
  • 1人2回まで
  • 登録:2009/09/24 21:35:19
  • 終了:2009/09/25 20:23:30

ベストアンサー

id:chrono1742 No.1

chrono1742回答回数91ベストアンサー獲得回数132009/09/24 21:47:46

ポイント100pt

> PHPで検索欄に指定した文字をおいて、検索ボタンを押すことは可能でしょうか?


これはできません。

PHPはサーバ側で動く仕組みなので、クライアント側にあるブラウザを操作することはできません。


> このURLのHTMLを取得したいと考えております。


これはできます。

下記の$queryに検索文字列を入れれば、$urlに目的のURLが代入されます。

$query = 'イチロー シャツ';
$str = mb_convert_encoding($query, 'EUC-JP', 'auto');
$str = urlencode($str);
$url = 'http://search.auctions.yahoo.co.jp/jp/search/auc?p=' . $str . '&auccat=0&alocale=0jp&acc=jp';
id:aiomock

ご回答ありがとうございます。

2009/09/24 22:34:45

その他の回答(2件)

id:chrono1742 No.1

chrono1742回答回数91ベストアンサー獲得回数132009/09/24 21:47:46ここでベストアンサー

ポイント100pt

> PHPで検索欄に指定した文字をおいて、検索ボタンを押すことは可能でしょうか?


これはできません。

PHPはサーバ側で動く仕組みなので、クライアント側にあるブラウザを操作することはできません。


> このURLのHTMLを取得したいと考えております。


これはできます。

下記の$queryに検索文字列を入れれば、$urlに目的のURLが代入されます。

$query = 'イチロー シャツ';
$str = mb_convert_encoding($query, 'EUC-JP', 'auto');
$str = urlencode($str);
$url = 'http://search.auctions.yahoo.co.jp/jp/search/auc?p=' . $str . '&auccat=0&alocale=0jp&acc=jp';
id:aiomock

ご回答ありがとうございます。

2009/09/24 22:34:45
id:koujirou6218 No.2

koujirou回答回数597ベストアンサー獲得回数472009/09/24 23:14:25

ポイント27pt

ヤフオクの検索入力のところにPHPで文字を入力してPHPで検索ボタンを押したいと考えています。

その後引き続きデータを取得したいのですが

PHPで検索欄に指定した文字をおいて、検索ボタンを押すことは可能でしょうか?

可能です。

FORMタグを利用しておりますので、「http://search.auctions.yahoo.co.jp/jp/search/auc」に対して適切なパラメータを渡してあげれば検索結果を取得できます。

URLのHTMLを取得したいと考えております

HTMLの取得はPHPでクエリを投げれば取得可能です。

検索結果で表示される個々の商品であればAPIを利用すれば簡単にできます。

Yahoo API ヤフーオークションの検索結果を取得する

API一覧

id:aiomock

ご回答ありがとうございます。

2009/09/24 23:20:50
id:wate_wate No.3

ワテ回答回数45ベストアンサー獲得回数32009/09/25 00:01:42

ポイント26pt

php.iniの設定でallow_url_fopenが有効であれば、

HTMLの取得に関しては以下のような感じで取得できます。

file_get_contents("http://search.auctions.yahoo.co.jp/jp/search/auc?p=%A5%A4%A5%C1%...");

また、検索キーワードをURLエンコードし、

「%A5%A4%A5%C1%A5%ED%A1%BC%A1%A1%A5%B7%A5%E3%A5%C4」の部分と入れ替えれば、

別のキーワードの検索結果も取得可能です。

HTMLの取得というよりも検索結果の内容が重要な場合は、

別の人が答えられたようにAPIを利用したほうがいいと思います。

id:aiomock

ご回答ありがとうございます。

2009/09/25 05:17:11
  • id:chrono1742
    koujirou6218様の回答で、「検索ボタンを押すことは可能でしょうか」に対して「可能です」と書かれていることに疑問を感じたのでコメントします。
    回答内容は、ボタンを押す好意ではなく、URLに対応するコンテンツを取得する手順を書かれています。したがって、「ボタンを押すことは可能」とは言えないと思います。

    また、APIによる取得データはXMLですので、これも質問の主旨にそぐわないと思います。
  • id:kn1967
    chrono1742 2009-09-25 07:39:13
    http://q.hatena.ne.jp/1253795717#c159611
    >「可能です」と書かれていることに疑問

    「可能です」という言葉以降に続く文章を読めば、
    「ボタンを押すことは可能」を略しているのではなく
    「HTMLを取得する事は可能」という言葉を略している事は明白。

    「明白ではないから疑問と呈したのだ」と言い返してきそうだが、
    それは読解力や理解力が足りていないからとしか言いようが無い。


    >APIによる取得データはXML

    XMLだけではない事が、既に下記にて回答されているので、
    これからも回答していかれるのであれば、
    再確認して理解を深めておいていただきたいものです。
    http://q.hatena.ne.jp/1253473507#a950854

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません