Javascript 加载页面后获取URL的内容

Javascript 加载页面后获取URL的内容,javascript,php,ajax,Javascript,Php,Ajax,我需要从URL获取中的字符串。我正在使用Ajax和PHP检索信息。我已经设法收集了“正确”的数据 问题是,我正在收集的数据——这是一个数字——在开始时是0,并且在页面完全加载后直接更新为103或其他一些随机数。我需要第二个。 这是因为我从中检索数据的网站是在ReactJS中创建的,并使用JSX动态更新该数字 在页面加载了所有内容后,我需要以某种方式获取数据 长话短说: 在相关页面已通过javascript加载其全部内容后,如何从URL获取数据 我的代码: /gethtml.php functio

我需要从URL获取
中的字符串。我正在使用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);
        }
    });

});
视觉示例


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


即使您在页面最初呈现后执行代码,组件的属性也有可能因某种原因发生更改,并且您的更改将再次被覆盖。

我不确定为什么会被否决。但目前,你不会有太多的运气拉原始数据的网址。即使你可以模拟它的JS文件,也需要更多的时间。我的建议是跟踪那些将“0”改为应该的数字的函数。如果它是一个API调用,请检查dev tools中的networks选项卡以了解如何调用它。不幸的是,这不是一个API调用。他们现在还没有提供。我可以在不访问API的情况下跟踪该函数吗?如果该站点提取的是JS文件中可用的函数,则需要重新创建返回该数字的逻辑。除了寻找React调试工具或阅读JS逻辑本身之外,我没有太多建议。