当前位置: 首页 > 面试题库 >

如何通过php获取网页的开放图谱协议?

章学义
2023-03-14
问题内容

PHP有一个简单的命令来获取网页的元标记(get_meta_tags),但这仅适用于具有名称属性的元标记。但是,开放图谱协议最近变得越来越流行。从网页获取opg值的最简单方法是什么。例如:

<meta property="og:url" content=""> 
<meta property="og:title" content=""> 
<meta property="og:description" content=""> 
<meta property="og:type" content="">

我看到的基本方法是通过cURL获取页面并使用正则表达式进行解析。任何的想法?


问题答案:

从HTML解析数据时,您实际上不应该使用正则表达式。看一下DOMXPath
Query函数

现在,实际代码可能是:

[编辑] Stefan Gehrig为XPath提供了更好的查询,因此代码可以简化为:

libxml_use_internal_errors(true); // Yeah if you are so worried about using @ with warnings
$doc = new DomDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$query = '//*/meta[starts-with(@property, \'og:\')]';
$metas = $xpath->query($query);
$rmetas = array();
foreach ($metas as $meta) {
    $property = $meta->getAttribute('property');
    $content = $meta->getAttribute('content');
    $rmetas[$property] = $content;
}
var_dump($rmetas);

代替 :

$doc = new DomDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$query = '//*/meta';
$metas = $xpath->query($query);
$rmetas = array();
foreach ($metas as $meta) {
    $property = $meta->getAttribute('property');
    $content = $meta->getAttribute('content');
    if(!empty($property) && preg_match('#^og:#', $property)) {
        $rmetas[$property] = $content;
    }
}
var_dump($rmetas);


 类似资料:
  • 如何通过F12快速获取网页中请求图片的接口呢?比如获取图片1的请求接口 希望知道的小伙伴解答一下,谢谢!

  • 问题内容: [我想做的事] 刮擦下面的网页以获取二手车数据。 http://www.goo- net.com/php/search/summary.php?price_range=&pref_c=08,09,10,11,12,13,14&easysearch_flg=1 [问题] 刮整个页面。在上面的网址中,仅显示前30个项目。我可以在下面编写的代码中删除这些内容。指向其他页面的链接显示为1 2

  • 问题内容: 我想在PHP中检索链接(网页)的HTML代码。例如,如果链接是 那么我要提供该页面的HTML代码。我想检索此HTML代码并将其存储在PHP变量中。 我怎样才能做到这一点? 问题答案: 如果您的PHP服务器允许使用url fopen包装器,则最简单的方法是: 如果需要更多控制,则应查看cURL函数:

  • 问题内容: 我试图用来获取Chrome标签,如下所示: (伪代码) 按F6定向网址行。 Ctrl + C复制网址 从剪贴簿获取网址 通过BS4处理URL,请求,selenium等。 我完成了步骤1并停留在步骤2。同样,我也不知道如何处理步骤3。因此,认为我发现的方法不正确且效率不高。有人可以建议我应该做什么或给我更好的方法吗? 问题答案: 只是将所有评论汇总在一个答案中… 没有技巧和剪贴板抓取功能

  • 我试图创建一个apache2网页,允许用户上传nifti(. nii,.nii.gz)文件。 我尝试了两种不同的方法: > 在WSL Ubuntu 18.04上,“move_uploaded_文件($_文件[“fileToUpload”][“tmp_名称”],$target_文件)”不返回任何内容。它完全失败了。 在XAMPP上,页面可以获取PDF、JPG..等文件,但不能获取.nii、.exe(

  • 输入某个网址url,可以提取对应网页的所有图片,并以缩略图展示出来,点击缩略图可查看原图。 [Code4App.com]