使用简单 Html Dom 从 div 中提取粗体文本
Using Simple Html Dom to extract bold text from a div
在脚本项目上工作,实际上花了最后 4 个小时来研究我能做的一切 - 我的头脑在这件事上真的不再起作用了,真的需要你的帮助。
所以我有一个 PHP cURL 脚本可以从网站抓取数据。我可以抓取 div 的 ID 等等。但是我怎样才能从 DIV 中获取特定的文本,它没有任何 ID/class/or 除了它是 div 中唯一的粗体项目之外的任何特定内容?
这是网站上的 HTML 文本:
<div class="firststyle"><label for="calculator" class="class-coll-1">
<p class="sr-only">Welcome to the calculator:</p> <b>What is one plus two?</b> </label></div>
我试图从这个 HTML 部分 parse/extract 只是文本“一加二是多少?”。
如何定义要选择的特定部分?
我目前唯一能做的就是使用以下脚本解析整个 div:
$html = str_get_html($response);
$the_question = $html->find('div[class=firststyle]');
然而,这会获取所有文本,包括我不需要的 "Welcome to the calculator" 标签内容。
是否有可能以某种方式将解析后的数据保存到一个变量中,然后使用不同的脚本从该变量中提取数据?
或者我可以做类似的事情:
使用此 ID 查找 div -> 在其中查找粗体文本
或者也许:
用ID找div->取出文字"Welcome to calculator"
如果您有来自网站的 HTML,您可以使用 DOMDocument class 来解析它。
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
$dom->loadHTML($html);
DOMDocument class 附带了很多方法。这就是您需要的两个 getElementById
和 getElementsByTagName
。
像这样:
$html = '<div id="test"><b>I want to be found!</b></div><div id="poep"><b>Im not selected</b></div>';
$dom = new DOMDocument();
$dom->loadHTML($html);
$div = $dom->getElementById('test');
$text = $div->getElementsByTagName('b')->item(0)->nodeValue;
echo $text;
将输出:
I want to be found!
echo $html->find('.firststyle b', 0)->innertext;
#=> What is one plus two?
在脚本项目上工作,实际上花了最后 4 个小时来研究我能做的一切 - 我的头脑在这件事上真的不再起作用了,真的需要你的帮助。
所以我有一个 PHP cURL 脚本可以从网站抓取数据。我可以抓取 div 的 ID 等等。但是我怎样才能从 DIV 中获取特定的文本,它没有任何 ID/class/or 除了它是 div 中唯一的粗体项目之外的任何特定内容?
这是网站上的 HTML 文本:
<div class="firststyle"><label for="calculator" class="class-coll-1">
<p class="sr-only">Welcome to the calculator:</p> <b>What is one plus two?</b> </label></div>
我试图从这个 HTML 部分 parse/extract 只是文本“一加二是多少?”。 如何定义要选择的特定部分?
我目前唯一能做的就是使用以下脚本解析整个 div:
$html = str_get_html($response);
$the_question = $html->find('div[class=firststyle]');
然而,这会获取所有文本,包括我不需要的 "Welcome to the calculator" 标签内容。
是否有可能以某种方式将解析后的数据保存到一个变量中,然后使用不同的脚本从该变量中提取数据?
或者我可以做类似的事情:
使用此 ID 查找 div -> 在其中查找粗体文本
或者也许:
用ID找div->取出文字"Welcome to calculator"
如果您有来自网站的 HTML,您可以使用 DOMDocument class 来解析它。
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
$dom->loadHTML($html);
DOMDocument class 附带了很多方法。这就是您需要的两个 getElementById
和 getElementsByTagName
。
像这样:
$html = '<div id="test"><b>I want to be found!</b></div><div id="poep"><b>Im not selected</b></div>';
$dom = new DOMDocument();
$dom->loadHTML($html);
$div = $dom->getElementById('test');
$text = $div->getElementsByTagName('b')->item(0)->nodeValue;
echo $text;
将输出:
I want to be found!
echo $html->find('.firststyle b', 0)->innertext;
#=> What is one plus two?