Я ищу способ получить файлы cookie с веб-сайта с помощью веб-сканера. Я изучил ситуацию, но не могу найти правильную библиотеку / способ решить мою проблему. Я не хочу получать файлы cookie из браузера, я пытаюсь получить их с веб-сайта (любого веб-сайта).
Я надеюсь, что кто-то сможет предоставить мне правильное решение / библиотеку! Заранее спасибо!
С уважением, Майк
Редактировать: Я знаю, что есть похожий пост об этой библиотеке (-ах) краулера. Но этот пост уже устарел, он сделан в 2011 году.
Хорошо, спасибо @Peter! Я разберусь =)






Вы можете получить файлы 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 для этого не подходит.
Вам нужно будет написать сценарий безголового браузера.
Вау, спасибо, это работает как шарм! Кроме того, объяснение дало мне много ясности! Приветствую вас =)
Вы просто анализируете заголовок ответа Set-Cookie. Однако вопросы по инструментам / библиотекам не по теме. Выберите один и вернитесь, если у вас с ним возникнут проблемы.