好的,所以我有以下功能抓住我需要的网页:
function login2($url2) {
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login2 = curl_init();
curl_setopt($login2, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($login2, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($login2, CURLOPT_TIMEOUT, 40000);
curl_setopt($login2, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login2, CURLOPT_URL, $url2);
curl_setopt($login2, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login2, CURLOPT_FOLLOWLOCATION, false);
[...]
然后我发出这个来使用函数:
echo login2("https://example.com/clue/holes.aspx");
这与我请求的页面相呼应,但我只希望它回显HTML源代码中的特定数据。这是特定的标记:
<h4>
<label id="cooling percent" for="symbol">*</label>
4.50
</h4>
我想要的唯一信息是图,在这个具体示例中是 4.50 。
那么我该如何解决这个问题并让我的cURL抓住它并回显它而不是回显整个页面?
答案 0 :(得分:0)
您可以使用XPath解决此问题:
$html = login2('https://example.com/clue/holes.aspx');
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$value = $xpath->query('//label[@id="ctl00_ctl00_PageContainer_MyAccountContainer_symPound"]/following-sibling::text()')->item(0)->nodeValue;
echo $value;