2013-02-15 81 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

相关问题