使用PHP从网页获取内容
我正在做一个小项目,根据页面的HTML标记从几个网页获取信息,我根本不知道从哪里开始 其基本思想是从s中获取标题,从s标签中获取内容以及所需的其他重要信息 我必须从每个来源设置每个案例,以使其按照需要的方式工作。我相信正确的方法是在PHP中使用$\u GET方法。该项目的目标是建立一个信息数据库使用PHP从网页获取内容,php,get,Php,Get,我正在做一个小项目,根据页面的HTML标记从几个网页获取信息,我根本不知道从哪里开始 其基本思想是从s中获取标题,从s标签中获取内容以及所需的其他重要信息 我必须从每个来源设置每个案例,以使其按照需要的方式工作。我相信正确的方法是在PHP中使用$\u GET方法。该项目的目标是建立一个信息数据库 获取我需要的信息的最佳方法是什么?您可以通过以下方式获取页面的HTML源代码: <?php $html= file_get_contents('http://www.example.com/');
获取我需要的信息的最佳方法是什么?您可以通过以下方式获取页面的HTML源代码:
<?php
$html= file_get_contents('http://www.example.com/');
echo $html;
?>
然后,一旦您确定了页面的结构,您将获得带有substr和strpos的请求标记。正如您在文档中所看到的,$\u GET只是一个数组,它使用web服务器在当前查询期间收到的GET参数初始化。因此,这不是你想用在这类事情上的东西
您应该研究的是,它允许您编写甚至相当复杂的查询,发送到目标服务器并检索响应。例如,对于POST请求,您可以执行以下操作:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"postvar1=value1&postvar2=value2&postvar3=value3");
// in real life you should use something like:
// curl_setopt($ch, CURLOPT_POSTFIELDS,
// http_build_query(array('postvar1' => 'value1')));
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
当然,如果您不必执行任何复杂的查询,只需执行简单的GET请求,那么可以使用PHP函数
收到网页内容后,必须对其进行解析。我认为最好的方法是使用。如何使用它们应该是另一个问题,但是你可以不费吹灰之力就找到大量的示例。你要找的是名为“刮削”的,实际上有大量的解决方案、库、包装和教程。只是谷歌的php刮刀$_GET不是一个方法,它基本上只是一个包含查询值的数组——因此它实际上与您的问题无关。此外,您还应该查看php DOM解析器,以便从文档/源代码中正确提取所需的html元素。使用substr和STRPO解析html将导致Kittins陷入地狱。
<?php
$remote = file_get_contents('http://www.remote_website.html');
$doc = new DomDocument();
$file = @$doc->loadHTML($remote);
$cells = @$doc->getElementsByTagName('h1');
foreach($cells AS $cell)
{
$titles[] = $cell->nodeValue ;
}
$cells = @$doc->getElementsByTagName('p');
foreach($cells AS $cell)
{
$content[] = $cell->nodeValue ;
}
?>