如何在网站搜索中搜索任何网站

时间:2016-03-06 18:52:08

标签: javascript php dom web-scraping html-parsing

我正在开发一个使用DOM解析从网站上抓取数据的项目。它可以使用该页面URL从特定网站提取数据。

我想添加一些功能,将php变量传递给该网站的搜索框。并搜索该查询。当用户在网站搜索框中手动输入值并按下搜索时,结果就会出现,我们会选择该结果。我想以编程方式执行此操作。

如何将我的php变量传递到网站搜索框并在该网站上搜索?

2 个答案:

答案 0 :(得分:0)

您必须检查并查看表单的工作方式 - 发布数据的端点。然后在脚本中执行相同的操作并处理结果(可能以各种不同的格式提供服务 - JSON,HTML,XML等)。有时可能会增加安全性,特别是如果它是使用viewstate的.NET站点。

答案 1 :(得分:0)

一个有点直接的建议是在提交表单时运行脚本,该表单搜索工作目录中每个网页中的文本以查找匹配项,然后显示包含指向找到的匹配项的链接的页面。

我将使用PHP来描述如何完成此操作。

考虑到这一点,首先要学习如何将整个页面(即网页)读入字符串: http://php.net/manual/en/function.file-get-contents.php

//YOU WILL HAVE TO LINE THIS UP WITH YOUR WORKING FILE NAMES
$home = file_get_contents('./home.php', FILE_USE_INCLUDE_PATH);

或者我想你可以像这样搜索实际的网页/网址:

$home = file_get_contents('http://www.example.com/');//IMAGINE THIS IS REALLY HOME.PHP
$homePageName = "home.php";//JUST HERE TO SHOW AN EXAMPLE

示例:

///YOUR FORM/INPUT BOX
<form action="search.php" method="post">
    <input type="text" name="findMe" placeholder="Search...">
</form>

现在搜索.php

$search = $_POST['findMe'];
//$search = "example";//THIS WOULD WORK, BUT I WAS SHOWING HOW TO USE FORM

//IF WORD FOUND IN HOME PAGE
if (stripos($home, $search) !== false) {//USING EXAMPLE.COM TO SHOW IT WORKS
    echo '<a href="'.$homePageName.'">'.$homePageName.'</a>';
}

然后,如果您想要简化并且不使用数组来存储找到的页面,请使用上面相同的代码并将其用于您想要搜索的每个页面(即主页,关于,产品等)。

现在,用户可以搜索您的网站(或您要编入索引的网页),以查找具有匹配文本的所有网页。如果您想要搜索特定关键字,只需将它们添加到页面元数据中,我所描述的过程仍将有效,因为它会搜索构成页面的所有内容。

<meta name="keywords" content="keyword1, keyword2, keyword3 " />