我想从网页的以下部分中提取数字2,673
<ul class="instructor__stats">
<li>
<div class="small">
Students
</div>
<div class="a2">
2,673
</div>
</li>
<li>
<div class="small">
Courses
</div>
<div class="a2">
1
</div>
</li>
我使用这个PHP代码:
<?php
$url = file_get_contents("https://www.udemy.com/user/54a6106b68452/");
$pageArray = explode('<ul class="instructor__stats">
<li>
<div class="small">
', $url);
if (sizeof ($pageArray) >1){
$pageArray_2 = explode('
</div>
</li>
<li>
<div class="small">
Courses', $pageArray[1]);
$numberofstudents = $pageArray_2[0];
}
?>
它不返回任何东西。我知道我正在访问该页面并获取内容,因为我提取了一些纯文本进行测试。知道如何提取数字2673?数字2673每日更新,以便价值来自其他地方。
答案 0 :(得分:1)
您可以使用DOMDocument和DOMXpath:
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML(file_get_contents("http://somesite/somepage"));
$xpath = new DOMXpath($dom);
echo $xpath->query("//div[@class='a2']")[0]->textContent;
最重要的部分是$xpath->query
:
我们尝试找到div
类a2
,第一个匹配[0]
并提取其文本(->textContent
)。最后,我们使用trim()
删除任何内容额外的空间。