0

我想在http://www.drugbank.ca/上自动搜索一个字符串并获取结果 URL(搜索字段位于页面顶部)。仅通过操作 URL 无法搜索该网站。有没有基于服务器的方法来做到这一点?我想创建自己的网页,其中包含一个输入字段和“搜索 DrugBank for X 并获取 URL”的按钮。

谢谢。

4

1 回答 1

1

您需要获取以下内容:

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>

(既然你问了)

为了找到我要查询的 URL,我去了该站点,并查看了当我按下搜索时提交的表单(查看源代码,或者在搜索框或搜索按钮上很容易执行“检查元素”) .

我发现表格是:

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

这意味着当您按下搜索时,确切的情况是您将执行GET请求,因为method="get"和 get 请求意味着请求一个 url,如果需要参数,它们应该在 URL ( http ://en.wikipedia.org/wiki/Query_string#Web_forms)。

将要查询的 URL 是/search,因为 action 是action="/search"其余的 url 将使用这里提供的参数构建,它只是:

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

在那里你可以看到应该提供来进行搜索的参数名称,即“查询”

于 2013-02-15T22:57:05.123 回答