2016-10-03 67 views
0

我需要做一件不尋常的事情。我需要讓我的網站轉到另一個網站,在某些輸入字段中填寫一些字詞,搜索結果並從其他網站獲取該搜索的結果。是否有辦法讓我的代碼在另一個站點上執行一些操作並返回結果?

有沒有辦法呢?

+1

其他網站是否有某種API? – Linkan

+1

另一個網站應該有一個可用的API來實現你想要做的事情。 –

+1

你在你的標籤* web-scraping *中提到這是你真正想要做什麼?如果是這樣,那裏有很多網絡抓取工具 - 只要搜索它。 – 0xDECAFBAD

回答

0

如果你需要自動化工具,那麼你必須編寫一個腳本。用PHP你可以使用cURL。使用cURL,您可以將數據發佈到表單中並根據需要獲取內容。對於東西

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

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

0

使用API​​

通常像這樣應該有你要去做的API:您可以〔實施例POST數據。

如果不是這種情況,請檢查以下選項並確保網站的所有者允許您執行您想要的操作(或者如果您造成過多的流量或者他不喜歡網頁,則可能會被阻止一般)

使用直接HTTP請求-scraping

Web表單基本上是一個以「建」一個HTTP請求到某個終點的方式。查看網站的HTML以確定請求是如何創建的:

  • 檢查目標url的表單標記的「action」屬性。
  • 通過檢查表單標記「method」屬性的值來獲取HTTP方法
  • 通過檢查所有輸入標記的名稱屬性來獲取參數名稱。

如果他們改變他們的網站,這些值可能會改變,你的程序可能會失敗。

您可以使用cURL或任何其他HTTP庫來做到這一點。

使用庫模擬網頁瀏覽器

例子:Symfony Browser-Kit

我不想提供如何使用它的整體手冊,因爲鏈接頁面上的文檔很不錯。但取自該頁面的示例如下:

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); 

如果他們更改他們的網站,則可能會失敗,具體取決於他們所做的更改。您需要相應地更新您的程序。

相關問題