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