在一个脚本项目上工作,花了最后4个小时研究我所能做的一切 - 我的头脑在这个问题上不再起作用,真的需要你的帮助。
所以我有一个PHP cURL脚本来抓取网站上的数据。我可以抓住有ID的div和所有这些。但是我如何从DIV中获取没有任何ID /类/或任何特定内容的特定文本,除了它是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部分解析/提取的只是文字&#34; 什么是一加二?&#34;。 如何定义要选择的特定部分?
我目前唯一能做的就是使用以下脚本解析整个div:
$html = str_get_html($response);
$the_question = $html->find('div[class=firststyle]');
然而,这会得到所有文字,包括&#34;欢迎来到计算器&#34;标签我不需要的东西。
是否有可能以某种方式将解析后的数据保存到变量中,然后从那里使用不同的脚本从该变量中提取数据?
或者我也可以这样做:
使用此ID找到div - &gt;在其中找到粗体文字
或者也许:
查找带ID的div - &gt;取出文本&#34;欢迎来到计算器&#34;
答案 0 :(得分:0)
如果你有来自网站的HTML,你可以使用DOMDocument类来解析它。
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
$dom->loadHTML($html);
DOMDocument类附带了很多方法。这些是您需要的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!
答案 1 :(得分:0)
echo $html->find('.firststyle b', 0)->innertext;
#=> What is one plus two?