Php 解析网页';s源给定的URL
给定URL,如何解析某个网页的源代码?我想从源代码中找到作者、标题以及上次修改的时间 我的想法是用文件_get_contents()解析源代码。然后,对于作者,我会在源代码中查找[…]并提取其中的内容。我不确定我会怎么做才能找到上次修改的时间Php 解析网页';s源给定的URL,php,parsing,url,Php,Parsing,Url,给定URL,如何解析某个网页的源代码?我想从源代码中找到作者、标题以及上次修改的时间 我的想法是用文件_get_contents()解析源代码。然后,对于作者,我会在源代码中查找getElementsByTagName('title'); 如果($titleNodes->length==1){ $title=$titleNodes->item(0)->textContent; } 您想如何解析它取决于您想用它做什么。PHP为解析和操作HTML和XML提供了大量选项。您可以使用file\u get
这些方法有效吗?有更好的方法吗?您可以使用文件获取内容 例如:
$content = file_get_contents('http://www.external-site.com/page.php');
然后变量$content将包含外部站点的内容。您需要解析DOM
尝试使用如下解析器:改用curl(当“allow\u url\u fopen”指令为false且更灵活时,它仍然有效)
要解析网页源代码,可以使用DOM库,但在加载HTML内容之前应该禁用libxml错误输出
例如:
<?php
$url = 'http://stackoverflow.com/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if( $content === null || $httpCode >= 400 ) {
die();
}
libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($content);
$title = null;
$titleNodes = $dom->getElementsByTagName('title');
if( $titleNodes->length === 1 ) {
$title = $titleNodes->item(0)->textContent;
}
loadHTML($content);
$title=null;
$titleNodes=$dom->getElementsByTagName('title');
如果($titleNodes->length==1){
$title=$titleNodes->item(0)->textContent;
}
您想如何解析它取决于您想用它做什么。PHP为解析和操作HTML和XML提供了大量选项。您可以使用file\u get\u contents
或curl来检索页面。我想查找标题、作者以及上次修改的时间。这在不同的网页之间有很大差异--您需要提供一个您尝试解析的页面示例。