页面加载后获取URL的内容

时间:2020-09-30 09:06:13

标签: javascript php ajax

我需要从URL提取<div>中的字符串。我正在使用Ajax和PHP来检索信息。我设法收集了“正确的”数据。

问题是,我正在收集的数据(即数字)在开头是0,并且在页面完全加载后直接更新为103或其他随机数。我需要第二个。 这是因为我要检索数据的网站是在ReactJS中创建的,并使用JSX动态更新该数字。

在页面已加载所有内容后,我需要以某种方式获取数据。

长话短说: 在有问题的页面通过javascript加载了其全部内容之后,如何 从URL中获取数据?

我的代码:

/gethtml.php

function curl_get_file_contents($URL)
{
    $c = curl_init();
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($c, CURLOPT_URL, $URL);
    $contents = curl_exec($c);
    curl_close($c);

    if ($contents) return $contents;
    else return FALSE;
}
function get_number(){
    $url = "https://www.example.com";
    $html = curl_get_file_contents($url);
    $dom = new DOMDocument;
    @$dom->loadHTML($html);
    $divs = $dom->getElementsByTagName('div');
    $compare_string = "someClassName";
    
    foreach ($divs as $div){
        $c = $div->getAttribute("class");
        if(strpos($c, $compare_string) !== false) {
            return $c;
        }             
    }
}
$num= get_number();
echo json_encode(array("value"=>$num));

JavaScript / Ajax

jQuery(document).ready(function( $ ){

    $.ajax({
        url:"gethtml.php", 
        type: "post",   
        dataType: 'json',
        data: {},
        success:function(result){
            console.log(result.value);
        }
    });

});

视觉示例

Collecting data

1 个答案:

答案 0 :(得分:0)

长话短说:您不应手动更新由React控制的“视图”。

即使您在最初呈现页面之后执行代码,组件的state仍可能由于某些原因而发生更改,并且您的更改将再次被覆盖。