【问题标题】:how to find page number of a website and put it in a variable [closed]如何查找网站的页码并将其放入变量中[关闭]
【发布时间】:2015-04-20 15:05:45
【问题描述】:

我在某个时候被卡住了。我需要你的一点帮助。我需要找到网站的导航页面并将其放入 for 循环。我已经完成了硬编码,但我需要它动态。 以下是示例:

<?php 
for ($x = 1; $x <= 5; $x++) {
    $olxcom = file_get_contents('http://olx.com.pk/cars/?page=' . $x . '');
    $file1 = 'olx.txt';
    file_put_contents($file1 , $olxcom, FILE_APPEND);
} 
for ($y = 1; $y <= 5; $y++) {
    $pakwheels = file_get_contents('http://www.pakwheels.com/used-cars/search/-/?page=' . $y . '');
    $file2 = 'pakwheels.txt';
    file_put_contents($file2 , $pakwheels, FILE_APPEND);
} 
for ($z = 1; $z <= 5; $z++) {
    $carmudi = file_get_contents('http://www.carmudi.pk/cars/?page=' . $z . '');
    $file3 = 'carmudi.txt';
    file_put_contents($file3 , $carmudi, FILE_APPEND);
}
?>

这些数字 5 是我硬编码的页码。我试图找到那些带有 for 循环或其他东西的人。 谢谢

【问题讨论】:

  • 您是否尝试格式化一些代码?我不确定某些代码在哪里结束而其他代码从哪里开始。
  • 兄弟 我已经启动了三个线程,例如 x,y,z 为什么它看起来像这样,其次我想知道如何找到最后一页的导航超链接,以便在网站结束时结束循环有最后一页

标签: php pagination web-crawler


【解决方案1】:

Try: 比传递给你的数组;

 $dom = new DOMDocument;
 $dom->loadHTML($html);
 foreach ($dom->getElementsByTagName('a') as $node)
 {
   echo $node->nodeValue.': '.$node->getAttribute("href")."\n";
 }

使用多维数组(); http://php.net/manual/en/language.types.array.php

例子:

 <?php

 $my_array = array('x','y','z');
 for ($row = 0; $row < 3; $row++) {
     echo "<p> your stuff item ". $row."<p>";
     for ($col = 0; $col <5; $col++) {
          echo "the inner stuff";
    }
 }

 ?>

这应该可以解决您的问题...

【讨论】:

  • 兄弟感谢您的回答,但我需要找到导航页面链接的总数,例如 1,2,3,4,5,6,.......最后。我需要找到最后一个数字并将其分配给我之前提到的 for 循环
【解决方案2】:

您需要下载并解析页面的html以找到页码。试试Simple HTML DOM Parser

//random example of selecting from html content
$ret = $html->find('div.foo');
//OR
$ret = $html->find('div[class=foo]');

基本上你可以访问元素,比如你如何使用 css 选择器。找到网页的导航 id 并从中解析页面数。

检查页面的How to find HTML elements? section, tab Advanced

例如http://www.carmudi.pk/cars/包含页面总数

<li class="total-pages"> of <strong>1036</strong> </li>

您可以使用total-pages 类访问它并解析文本。

如果您正在寻找适用于所有网站的通用解决方案,因为每个网站都有不同的导航 html,每个网站都需要单独解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2022-08-18
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    相关资源
    最近更新 更多