我想在http://www.drugbank.ca/上自动搜索一个字符串并获取结果 URL(搜索字段位于页面顶部)。仅通过操作 URL 无法搜索该网站。有没有基于服务器的方法来做到这一点?我想创建自己的网页,其中包含一个输入字段和“搜索 DrugBank for X 并获取 URL”的按钮。
谢谢。
我想在http://www.drugbank.ca/上自动搜索一个字符串并获取结果 URL(搜索字段位于页面顶部)。仅通过操作 URL 无法搜索该网站。有没有基于服务器的方法来做到这一点?我想创建自己的网页,其中包含一个输入字段和“搜索 DrugBank for X 并获取 URL”的按钮。
谢谢。
您需要获取以下内容:
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">
<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">
在那里你可以看到应该提供来进行搜索的参数名称,即“查询”!