cUrl - хранить все с веб-страницы - PullRequest
0 голосов
/ 06 февраля 2011

Я сохраняю файлы 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, сценарии + все) в той же папке.любой совет?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2011

попробуйте wget с рекурсивным переключателем

0 голосов
/ 07 февраля 2011

Сначала я вижу, что вы создаете файл, используя fopen и fclose, для этого вы можете просто использовать функцию touch.

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);
}

?>

Я не проверял этот код, но это основа того, что вы хотите. Просто используйте регулярные выражения или некоторые функции, чтобы получить ссылки.

0 голосов
/ 06 февраля 2011

Я предлагаю использовать расширение php DOM http://php.net/manual/en/book.dom.php Это похоже на javascript.Вы просто зацикливаетесь на типичных тегах, таких как <img>, <script> <style>,, ищите атрибуты src, получаете ссылки на ссылочные ресурсы и извлекаете это содержимое с использованием того же cURL или file_get_contents.

Ознакомьтесь с руководством по DOM, в нем много полезных комментариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...