cUrl - 存储网页中的所有内容

时间:2011-02-06 20:29:58

标签: php curl

我正在使用此功能将Cookie保存在文本文件中:

$cookie_file_path = "".dirname(__FILE__)."/cookie.txt"; // Please set your Cookie File path
$fp = fopen($cookie_file_path,'wb'); 
fclose($fp);
$ch = curl_init();
// other curl functions here // 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$loginpage_html = curl_exec ($ch);
curl_close ($ch);

它将cookie保存到与cookie.txt相同的文件夹中,并在连接时使用相同的cookie。

我想将图像(css,scripts + everythings)保存到同一个文件夹中。任何建议?

3 个答案:

答案 0 :(得分:0)

我建议使用php DOM扩展http://php.net/manual/en/book.dom.php 这与javascript类似。您只需循环通过<img>, <script> <style>,等典型标记搜索属性src并获取引用资源的链接,并使用相同的cURL或file_get_contents检索这些内容。

查看DOM手册,它有很多有用的评论。

答案 1 :(得分:0)

使用递归开关尝试wget

答案 2 :(得分:0)

首先我看到你使用fopen和fclose创建文件,你可以使用触摸功能。

cURL仅用于获取所请求页面的内容。然后你可以做的就是解析链接的HTML并在循环中使用cURL来获取它们。

有一个set_opt CURLOPT_FILE,它是输出的去处。例如:

<?php

foreach($links as $link){
    $file = dirname(__FILE__)."/".basename($link);
    touch($file);
    // get page
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FILE, $file);
    $output = curl_exec($ch);
    curl_close ($ch);
}

?>

我没有检查代码,但这是你想要的基础。只需使用正则表达式或一些函数来获取链接。