Получение файлов cookie с веб-сайта с помощью Webcrawler / webscraper (PHP / cURL)

Я ищу способ получить файлы cookie с веб-сайта с помощью веб-сканера. Я изучил ситуацию, но не могу найти правильную библиотеку / способ решить мою проблему. Я не хочу получать файлы cookie из браузера, я пытаюсь получить их с веб-сайта (любого веб-сайта).

Я надеюсь, что кто-то сможет предоставить мне правильное решение / библиотеку! Заранее спасибо!

С уважением, Майк

Редактировать: Я знаю, что есть похожий пост об этой библиотеке (-ах) краулера. Но этот пост уже устарел, он сделан в 2011 году.

Вы просто анализируете заголовок ответа Set-Cookie. Однако вопросы по инструментам / библиотекам не по теме. Выберите один и вернитесь, если у вас с ним возникнут проблемы.

Peter 18.12.2018 17:59

Хорошо, спасибо @Peter! Я разберусь =)

mvandiepen 18.12.2018 18:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
824
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете получить файлы cookie с php-curl примерно так:

<?php    

// The url to visit
$url = "https://www.google.com";

// Where to read cookies from and where to write them
$cookiesFile = "cookies.txt";

// Setup
$handle = curl_init();

curl_setopt( $handle, CURLOPT_URL,              $url );
curl_setopt( $handle, CURLOPT_RETURNTRANSFER,   true );
curl_setopt( $handle, CURLOPT_FOLLOWLOCATION,   true );

// Send cookies upon request and update them as per response
curl_setopt( $handle, CURLOPT_COOKIEFILE,       $cookiesFile );
curl_setopt( $handle, CURLOPT_COOKIEJAR,        $cookiesFile );

// Send request, get response
$response = curl_exec( $handle );

// Done with curl
curl_close( $handle );

То, что вы получаете внутри файла cookies.txt, выглядит так ...

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.google.com TRUE    /   FALSE   1547833930  1P_JAR  2018-12-19-17
#HttpOnly_.google.com   TRUE    /   FALSE   1561053130  NID 150=OF8rpPblfIZCnga6aoN_Zo6_H9nv87Th7ggQZDijf76GJ11ZDkWXmQXEQ9cUOBC3z7vY_Ea0-NtGcK5wi8Qo3myU1nnNksfgTreuIHJRiI0-pEqN9v4H7YGafp6r0RFHFueUbJ9IWo3Bu83Sh3akVW6bXzY2I-rJvaIIGoW9Fdg

Файлы cookie хранятся в определенном формате под названием Файл cookie Netscape HTTP, вы можете посмотреть этот вопрос и связанные с ним ответы для более подробной информации.


При выполнении последующих запросов с указанным выше кодом ранее полученные файлы cookie считываются из файла cookie и отправляются вместе с запросом. Когда получен ответ, если cookie обновляется, файл также обновляется.

Это важно, потому что по мере того, как вы посещаете с помощью php-curl больше страниц одного и того же веб-сайта, хранилище файлов cookie остается неизменным. Подумайте в качестве примера о файлах cookie сеанса.

Приведенный выше код хранит внутри $response HTTP-код посещенной страницы.


Обратите внимание, что если вам просто нужно посетить пару страниц и получить файлы cookie, это простая задача, которую можно выполнить с помощью всего кода, показанного в начале.

Его можно легко настроить даже для выполнения запроса POST в случае, если вам нужно отправить данные, как когда пользователь компилирует форму и отправляет ее.

Если вам нужно очистить весь сайт, все может быть не так тривиально.

Наконец, примите во внимание, что файлы cookie могут быть установлены кодом JavaScript.

Если вам нужно посетить интерактивный сайт или сайт с богатым JavaScript и смоделировать взаимодействие с пользователем, а затем проверить файлы cookie, php-curl для этого не подходит. Вам нужно будет написать сценарий безголового браузера.

Вау, спасибо, это работает как шарм! Кроме того, объяснение дало мне много ясности! Приветствую вас =)

mvandiepen 20.12.2018 22:55

Другие вопросы по теме