2016-10-03 9 views
0

私は異常なことをする必要があります。私は自分のサイトを別のサイトに移動し、いくつかの入力フィールドに単語を書き、検索結果を返し、別のサイトからその検索結果を取得する必要があります。他のサイトでいくつかのアクションを実行して結果を返すようにコードを作成する方法はありますか?

どうすればよいですか?

+1

他のサイトにはAPIがありますか? – Linkan

+1

他のサイトには、実行したいことを実装するための利用可能なAPIが必要です。 –

+1

あなたのタグに記載されている* web-scraping * - あなたが実際にやりたいことですか?もしそうなら、そこにはたくさんのウェブスクレイピングツールがあります。それを探してください。 – 0xDECAFBAD

答えて

0

自動ツールが必要な場合は、スクリプトをコーディングする必要があります。 PHPでは、cURLを使用できます。 cURLを使用すると、フォームにデータを投稿し、必要に応じてコンテンツを取得できます。あなたはexmapleのデータを投稿することができます:

curl_setopt($curl, CURLOPT_POST, TRUE); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); 

http://php.net/manual/en/book.curl.php

0

使用して、API

を通常のもののために、このようにあなたがやろうとしているもののためのAPIがあるはずです。

そうでない場合は、次のオプションをチェックして、ウェブサイトの所有者があなたがしたいことを実行できるようにしてください(あまりにも多くのトラフィックを引き起こしたり、

利用の直接HTTP)、一般的に-scrapingは、Webフォームは、基本的には、特定のエンドポイントにHTTPリクエストを「構築」するだけの方法である

要求します。ウェブサイトのHTMLを見て、リクエストの作成方法を確認してください:

  • ターゲットURLのフォームタグの "action"属性を確認してください。
  • フォームタグの "method"属性の値を確認してHTTPメソッドを取得します。
  • すべての入力タグの名前属性を確認してパラメータ名を取得します。

ウェブサイトを変更すると、これらの値が変更され、プログラムが失敗することがあります。

これを行うには、cURLまたはその他のHTTPライブラリを使用できます。リンク先のページのドキュメントはかなり良いですので、私は、それを使用する方法の全体のマニュアルを提供したくないSymfony Browser-Kit

は、Webブラウザ

例をシミュレートするライブラリを使用します。しかしそのページから取られた例:

use Acme\Client; // Make sure to create this class as described in the documentation 

// make a real request to an external site 
$client = new Client(); 
$crawler = $client->request('GET', 'https://github.com/login'); 

// select the form and fill in some values 
$form = $crawler->selectButton('Log in')->form(); 
$form['login'] = 'symfonyfan'; 
$form['password'] = 'anypass'; 

// submit that form 
$crawler = $client->submit($form); 

もし彼らが彼らのウェブサイトを変更した場合、これは変更によっては失敗することもあります。それに応じてプログラムを更新する必要があります。

関連する問題