繁体   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