2017-04-22 72 views
-1

我刮這個網址,因爲它是我最後一年的項目,但這段代碼只報廢1頁的搜索查詢我希望分頁(如1,2,3,4,5)最後請幫助PHP網絡抓取HTMLDOM分頁

我已經實現了一個使用CURL獲取數據的數據抓取腳本。

但是,抓取記錄只有一個頁面,但我想要所有的數據,因爲在那個頁面分頁。

<form action="" method="post" class="form-horizontal" id="home-search"> 
<input type="text" name="keyword" id="keyword"> 
<input type="submit">   
</form> 
<?php 
if(isset($_POST['keyword'])){ 
$keyword = urlencode($_POST['keyword']); 
ini_set('display_errors', 1); 

    ini_set('max_execution_time', 300); 
$html = file_get_contents('https://www.bestjobs.co.za/jobs/?q='.$keyword); 
//echo $html; 
$indeedDotPk = array(); 
//$html = file_get_contents($result); 
libxml_use_internal_errors(true); 
$doc = new DOMDocument; 
$doc->loadHTML($html); 
$xpath = new DOMXpath($doc); 

$node = $xpath->query('//div[@class="paginas"]/ul/li/a/@href'); 
$total_pages = 0; 
$start = 0; 
$job_title_index = 0; 
$job_link_index = 0; 
$job_description_index = 0; 
$job_experience_index = 0; 

foreach ($node as $key => $value) { 
    $total_pages++; 
    // echo $value->textContent; 
    // echo "<br>"; 
    // echo "<br>"; 
    // echo "<br>"; 
} 

for ($i=0; $i < $total_pages; $i++) { 
    ini_set('max_execution_time', 300); 
    $html = file_get_contents('https://www.bestjobs.co.za/jobs/?q='.$keyword.'&start='.$start); 
    libxml_use_internal_errors(true); 
    $doc = new DOMDocument; 
    $doc->loadHTML($html); 
    $xpath = new DOMXpath($doc); 

    // Job Description 
    $node = $xpath->query('//a[@class="js-o-link"]'); 
    foreach ($node as $key => $value) { 
     if(is_string($value->textContent)){ 
      $indeedDotPk[$job_description_index++]['job_description'] = $value->textContent; 
     } 
    } 
    // Job Description 

    $start = $start + 10; 
} 

    foreach ($indeedDotPk as $key => $value) { 
    if(!empty($value['job_description'])){ 

?> 

<table border="1"> 
<tr > 
    <td> 

    </td> 

    <td> 

    </td> 

    <td> 

    </td> 

    <td> 
     <?php echo $value['job_description']?> 
    </td> 
</tr> 

有沒有人有一個想法,我怎麼能像1,2,3,4,5一樣設置分頁?

如果有人有任何建議,那麼請幫助我。

謝謝...

回答

0

傳遞尋呼參數中的URL這樣

https://www.bestjobs.co.za/jobs/?q=sales&p=2 

包裹一切在功能和使用循環的尋呼參數傳遞給函數這樣

function webScrap($p){ 
//scrapping code 
} 

for($i=0;$i>=100;$i++){ 
webScrap($i); 
} 
+0

我didnot得到它Nitin先生基本上我是學生和begineer你可以modiefy我的上面的代碼,告訴我怎麼做,這將是一個很大的幫助 –