簡體   English   中英

根據要求返回特定部分

[英]Return a certain section on request

我試圖找出如何(以及最好的方法)返回頁面的特定部分。 我想知道是否可以“抓取”並返回存儲在HTML部分標記中的信息。

編輯:

我已經按照以下建議進行了工作。 到目前為止,我已經刮取了該站點的一個隨機片段,該片段可以正常工作,但是以某種方式我無法刮除想要的部分。

這是“隨機”部分:

<?php
$curl = curl_init('https://www.ah.nl/producten/product/wi94782/ah-mandarijnen-net');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$page = curl_exec($curl);

if(curl_errno($curl)) // check for execution errors
{
        echo 'Scraper error: ' . curl_error($curl);
        exit;
}

curl_close($curl);

$regex = '/<div class="navigation-section navigation-section--home">(.*?)<\/div>/s';
if ( preg_match($regex, $page, $list) )
    echo $list[0];
else
    print "Not found"; 
?>

上面的代碼返回:

<div class="navigation-section navigation-section--home">
                <a href="/"
                   class="ah-online-icon icon--home link--2 navigation-section__link navigation-section__link--left-icon navigation-section__link--home">Home</a>
        </div>

因此,這可行。 除此之外,我要抓的部分是:

<section class="nasa-number"><span>548401</span></section>

(您可以檢查鏈接 ,如果需要,我正在嘗試在右側頁面底部附近打印灰色數字)

相反,當我使用$regex = '/<section class="nasa-number">(.*?)<\\/section>/s'; ,它返回:找不到

我認為這將滿足您的需求

if ( preg_match("/<section class=\"nasa-number\"><span>(.*?)<\/span><\/section>/", $page, $list) ){
    echo $list[1]; 
   } else {
    print "Not found"; 
}

這將替換curl_close($curl);之后的所有內容curl_close($curl); 請注意,我所做的只是將dbl引號用作容器,因此,我必須轉義要匹配的實際引號。 在這里測試http://www.phpliveregex.com/p/iFn

是的,可以使用多種方法來完成,您可以使用Jquery來運行onload()函數。如果url中有任何數字,您可以獲取它並將其傳遞給其他自行生成的url。 請給我代碼示例,以便我根據您的問題為您提供最佳解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM