如何定位数组的定义范围
How To Target A Defined Range Of An Array
我下面的脚本将从一个特定的URL中获取一个完整的链接列表,用于我的dom scraper。但有些列表可以进入1000,所以我希望能够手动设置要实际抓取的链接。就像我在列表中输入从链接50开始到链接100结束一样。我该怎么做?
<form action="" method="POST">
<label>Url to scrape: </label>
<input type="text" name="url_scrape" id="url-scrape" />
<input type="submit" value=" Scrape now " />
<br />
<input type="hidden" name="scrape" value="yes" />
<br />
</form>
<br />
<br />
<?php
if( $_POST['scrape'] != 'yes' )
return;
include('simple_html_dom.php');
function strim( $input ){
$st = explode( '$', $input );
return (float)str_replace( array(' ',','),array('',''), $st[1] );
}
$url_scrape = $_POST['url_scrape'];
if( $url_scrape == '' )
return;
$BrowsebyLetter = file_get_html( $url_scrape );
$links = $BrowsebyLetter->find('.Results a');
?>
<h1 id="patient">Please be patient while scraping data</h1>
<div id="scrape-progress">
<div id="scrape-progress-ctx">0%</div>
</div>
<br />
<br />
<br />
<div id="progress-txt"></div>
<br />
<br />
<button id="retry" onclick="iframe.src = ">Retry if not continue</button>
<iframe src="" id="cacheLoad"></iframe>
<script type="text/javascript">
var total = <?php echo count($links); ?>;
var ctx = document.getElementById('scrape-progress-ctx');
var iframe = document.getElementById('cacheLoad');
var prx = document.getElementById('progress-txt');
var pt = document.getElementById('patient');
var retry = document.getElementById('retry');
var currentLink = '';
var links = [
<?php
foreach( $links as $link ){
echo "'".$link->href."',";
}
?>'Complete scrape <?php echo count($links); ?> links' ];
function progress( cur ){
ctx.style.width = Math.ceil((cur/total)*100)+'%';
ctx.innerHTML = Math.ceil((cur/total)*100)+'%';
};
function exe( i ){
progress( i );
if( links[i] != 'Complete <?php echo count($links); ?> links' )
{
currentLink = window.location+'&target='+links[i].split('Job=')[1]+'&cou='+(i+1);
iframe.src = currentLink;
};
if( i==total ){
pt.innerHTML = 'Successful';
pt.style.color = 'green';
retry.style.display = 'none';
alert('Scrape process is complete');
};
prx.innerHTML = '<strong>Status: </strong>'+ links[i];
};
exe( 0 );
</script>
尝试将其添加到循环所在的位置:
var links = [
<?php
$a = 0;
foreach( $links as $link ){
$a++;
if(($a > 50) && ($a < 100)){
echo "'".$link->href."',";
}
}
?>
它会检查链接是否在50到100之间,如果是,它会打印出来。希望我能帮上忙:)
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 用于检查数组中是否存在元素的javascript自定义方法
- Regex提取URL返回数组的一部分;未定义”;
- Javascript Float32数组抛出无法读取属性'0'即使数组定义良好,也为null
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- 处理docXTemplater或javascript对象数组中未定义的值
- Join架构验证:Join.object定义数组中的有效键
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- 如何用Typescript用自定义方法实现类数组
- 使用数组自定义对象
- JavaScript/jQuery JSON数组问题-值为未定义
- 返回由键/值对定义的数组
- 迭代和修改Firebase数组会导致未定义
- 拆分字符串数组(JavaScript)后未定义
- 在使用JavaScript推送数组时定义索引
- javascript函数外未定义的数组
- 用HTML5FileReader填充的Javascript多维数组未定义(但仅在首次使用时!)
- 访问数组定义中的相对索引项
- 为这个JSON输入数组定义ng模型——AngularJS
- 当数组定义为3时,一个Javascript - forth值的神秘工作没有返回异常