使用 PHP 从网页元素中获取文本

Posted

技术标签:

【中文标题】使用 PHP 从网页元素中获取文本【英文标题】:Get text from an element of a web page with PHP 【发布时间】:2021-03-25 23:34:32 【问题描述】:

我有这个错误:DOMDocument 类的对象无法转换为字符串

我正在尝试解析网页以获取 div 中的文本

$ch = curl_init($url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
$dom = new DOMDocument();
$dom->loadHTML($html);

$table = $dom->getElementById('mostra')> textContent; //DOMElement
echo $table;

这是html元素:

<div id="mostra">Hello<img src="file.png"></div>

我想打印你好

我该如何解决?

非常感谢,对不起我的英语

【问题讨论】:

你似乎有一个错字:... )&gt; textContent; 应该是 ...)-&gt; textContent; - 否则,你的代码应该是 work 【参考方案1】:
function string_between_two_string($str, $starting_word, $ending_word) 
    $subtring_start = strpos($str, $starting_word);
    $subtring_start += strlen($starting_word);
    $size = strpos($str, $ending_word, $subtring_start) - $subtring_start; 
    return substr($str, $subtring_start, $size);


$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);

$table = string_between_two_string($html, '<div id="mostra">', '<img src="file.png"></div>');
echo $table;

尝试使用此功能在两个元素之间查找文本

【讨论】:

以上是关于使用 PHP 从网页元素中获取文本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java selenium 从显示无元素中获取文本

Angularjs中$http.post返回的网页怎么获取某个元素的内容

使用带有PHP的DOM获取元素的文本但返回错误[重复]

C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?

vb怎么获取网页中的每个元素内容

VC CWebBrowser2 获取网页文本内容,该怎么解决