Javascript 如何使用ajax一次刮取一个页面,返回下一个页面链接并再次执行
问题: 我有一个php抓取功能和代码,所有的工作都很好,但它超时,因为它试图加载60个不同的页面 我在考虑使用AJAX在循环中一次加载一个页面。因为我对AJAX很陌生,所以我遇到了一些麻烦 这就是我到目前为止所拥有的,如果我提供链接,我可以让它在链接中循环,但是我希望它刮取第1页,返回下一页链接,然后在连续循环中刮取下一页,直到没有更多的页面。现在它进入无限循环模式 有什么想法吗,伙计们 这是我从youtube视频中提取的代码,该视频使用数组(我只传递字符串)Javascript 如何使用ajax一次刮取一个页面,返回下一个页面链接并再次执行,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,问题: 我有一个php抓取功能和代码,所有的工作都很好,但它超时,因为它试图加载60个不同的页面 我在考虑使用AJAX在循环中一次加载一个页面。因为我对AJAX很陌生,所以我遇到了一些麻烦 这就是我到目前为止所拥有的,如果我提供链接,我可以让它在链接中循环,但是我希望它刮取第1页,返回下一页链接,然后在连续循环中刮取下一页,直到没有更多的页面。现在它进入无限循环模式 有什么想法吗,伙计们 这是我从youtube视频中提取的代码,该视频使用数组(我只传递字符串) $(函数(){ 函数更新(){
$(函数(){
函数更新(){
ids=;
如果(ID){
var id=id;
$.post(“index.php”,{id:id}).done(函数(msg){
日志(id,msg);
更新();
});
}否则{
控制台日志(“完成”);
$(“#log”).html(“已完成!”;
}
}
$(“#go”)。单击(函数(){
$(“#go”).html(“加载…”);
更新();
});
});
前进按钮
后果
最后以另一种方式解决了这个问题:我调用function.php的函数运行脚本并返回下一个要刮取的URL。这是msg值,因此在验证后将再次调用刷新。刚刚处理了60页,每页38秒:S
<script>
$(document).ready(function() {
refresh('http://www.intrepidtravel.com/search/trip?');
function refresh(url) {
$.ajax({
type: "GET",
url: "function.php",
data: 'url=' + url,
success: function(msg){
$('#result').append('--->Completed! <br>Next Page: is ' + msg);
console.log(msg);
if ($.trim(msg) == 'lastpage'){
$('#result').append('--->Last page - DONE!');
}
else {
refresh(msg);
}
}
}); // Ajax Call
} //refresh
}); //document.ready
</script>
<script>
$(document).ready(function() {
refresh('http://www.intrepidtravel.com/search/trip?');
function refresh(url) {
$.ajax({
type: "GET",
url: "function.php",
data: 'url=' + url,
success: function(msg){
$('#result').append('--->Completed! <br>Next Page: is ' + msg);
console.log(msg);
if ($.trim(msg) == 'lastpage'){
$('#result').append('--->Last page - DONE!');
}
else {
refresh(msg);
}
}
}); // Ajax Call
} //refresh
}); //document.ready
</script>
if ($_GET['url']){
$url = $_GET['url'];
if ($url=="lastpage"){
echo $url;
} else {
$nextlink = scrapeSite($url);
echo($nextlink);
}
}