【问题标题】:How to download a specific DIV from a site using cURL?如何使用 cURL 从站点下载特定的 DIV?
【发布时间】:2011-04-17 19:27:45
【问题描述】:

我正在学习 PHP,我想知道如何每隔一两个小时通过 cURL 从网站自动下载特定的 DIV。

【问题讨论】:

    标签: php function html curl


    【解决方案1】:

    你没有。您下载整个页面,然后将其解析为您感兴趣的特定 DIV。

    【讨论】:

      【解决方案2】:

      未测试(可能是错误):

      set_time_limit(3600*24); //24 hours
      
      $numDownloads = 12; 
      
      for ($i = 0; $i < $numDownloads; $i++) 
      {
          $ch = curl_init('http://www.example.com/');
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
          $content = curl_exec($ch);
          curl_close($ch);
      
          if (preg_match('/<div>(.*?)<\/div>/i', $content, $matches)) 
          {
              $divContents = $matches[1];
      
              $myFile = 'div'.$i.'.txt'; 
      
              if ($fh = fopen($myFile, 'w')) 
              {
                  fwrite($fh, $divContents) 
              } 
      
              fclose($fh);
          }
      
      
          sleep(3600*2); 
      }
      

      我建议你放弃循环并在 cron 作业上运行它....

      【讨论】:

      • 大声笑...我是个菜鸟...如何删除循环 xD ? - 我可以指定一个 div 吗?
      • 要删除循环,您将取出以下代码:for ($i = 0; $i &lt; $numDownloads; $i++) { }。可以在此行上指定 div:if (preg_match('/&lt;div&gt;(.*?)&lt;\/div&gt;/i', $content, $matches)) 。唯一的问题是你的 div 必须有一个 id 或一些独特的东西。此外,在使用此代码之前,您应该真正真正地学习 PHP 的基础知识。不知道如何删除循环只会让你以后更头疼。
      • 感谢您的信息...我已经开始通过 W3Schools 学习它;-)
      • 我会远离那个人。我在这里找不到我发现这个的帖子,但请查看w3fools.com,他们有很多有效点。
      【解决方案3】:

      您可以使用 cURL 下载页面,并使用SimpleXML 对其进行解析以找到您需要的内容。

      SimpleXMLElement::xpath 可能是找到所需内容的最快方式。

      【讨论】:

        猜你喜欢
        • 2014-03-08
        • 2018-04-08
        • 1970-01-01
        • 2022-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多