2013-02-15 124 views
0

我想自動搜索字符串http://www.drugbank.ca/並獲取生成的網址(搜索字段位於頁面頂部)。只能通過操作URL來搜索網站。有沒有一種基於服務器的方式來做到這一點?我想創建我自己的網頁,輸入字段和按鈕「搜索DrugBank for X並獲取URL」。自動搜索網站字段並得到結果網址

謝謝。

+0

是什麼讓你認爲它不能通過操縱URL來搜索?當我搜索一些東西的時候,這個URL包含了我的查詢(然後你可以根據需要改變它)。 – unor 2013-02-16 16:56:22

回答

0

你需要得到的內容:

http://www.drugbank.ca/search?query=searchstring

你不能用JavaScript它不是由瀏覽器允許查詢不同域的網站(:http://en.wikipedia.org/wiki/Same_origin_policy因)做到這一點。

我會用PHP做到這一點,創建一個像searchDrugBank.php文件:

<?php 
$urlContent = file_get_contents('http://www.drugbank.ca/search?query=' . $_GET['q']); 
// process $urlContent however you want 
?> 

然後你把你的網站:

<form method="get" action="searchDrugBank.php"> 
<input type="text" name="q" /> 
<input type="submit" value="Search drugbank"/> 
</form> 

(既然你問)

要找到我要查詢的網址,我去了網站,查看了按下搜索時提交的表單(查看源代碼或查看源代碼容易做到「檢查元素」,例如searchbox或searchbutton)。

我發現,形式爲:

<form accept-charset="UTF-8" action="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div> 
     <strong>Search:</strong> 
     <input id="query" name="query" placeholder="Search DrugBank" size="30" type="search"> 
     <input name="commit" type="submit" value="Search">&nbsp; 
     <a href="/search/advanced">Help/Advanced</a> 
</form> 

這意味着,當你按下搜索,正是happends是,你會做一個GET請求,因爲方法=「獲得」並獲得請求意味着要求一個URL,如果需要參數,它們應該在URL中(http://en.wikipedia.org/wiki/Query_string#Web_forms)。

將要查詢的網址/搜索因爲行動是行動=「/搜索」的url然後將使用所提供的參數來構建其餘這裏它只是:

<input id="query" name="query" placeholder="Search DrugBank" size="30" type="search"> 

而且在那裏你可以看到名稱應該提供的參數進行搜索,即「查詢」

+0

謝謝。但是你怎麼知道你可以通過在URL中添加「search?query = searchstring」來獲取包含搜索字符串的URL?有沒有辦法解決這個問題? – 2013-02-15 23:32:32

+0

我已經添加了這個信息,希望你能得到它。 (得到它!哈哈,明白嗎?) – netigger 2013-02-16 07:57:37