Удалить cookie из браузера?

BeautifulSoup является отличным способом пойти для очистки HTML. Мое предыдущее задание имело меня делающий большую очистку, и мне жаль, что я не знал о BeautifulSoup, когда я запустил. Это похоже на DOM с намного более полезными опциями и является намного большим количеством pythonic. Если Вы хотите попробовать Ruby, они портировали BeautifulSoup, назвав его RubyfulSoup, но он не был обновлен в некоторое время.

Другие полезные инструменты являются HTMLParser или sgmllib. SGMLParser, которые являются частью стандартной библиотеки Python. Они работают вызывающими методами каждый раз, когда Вы вводите/выходите тег и встречаетесь с текстом HTML. Они похожи на Эмигранта, если Вы знакомы с этим. Эти библиотеки особенно полезны, если бы Вы собираетесь проанализировать очень большие файлы и создаете дерево DOM, было бы длинным и дорогим.

Регулярные выражения не очень необходимы. BeautifulSoup обрабатывает регулярные выражения поэтому при необходимости в их питании, можно использовать его там. Я говорю, идут с BeautifulSoup, если Вам не нужны скорость и меньший объем потребляемой памяти. При нахождении лучшего синтаксического анализатора HTML на Python сообщить мне.

14
задан mr-euro 12 August 2009 в 16:43
поделиться

5 ответов

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

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

Следовательно, чтобы удалить cookie, установите время его действия в прошлое. В PHP это делается с помощью setcookie () .

9
ответ дан 1 December 2019 в 07:40
поделиться

Попробуйте что-то вроде этого, чтобы удалить все файлы cookie:

foreach ($_COOKIE as $name => $value) {
    setcookie($name, '', 1);
}

Значение 1 - это значение expire , и оно представляет одну секунду после начала эпоха времени Unix. Так что срок его действия всегда истек.

19
ответ дан 1 December 2019 в 07:40
поделиться

Да. Используйте setcookie () и установите дату истечения срока действия cookie, который вы хотите удалить, на время в прошлом. В результате браузер пользователя должен автоматически удалить его.

5
ответ дан 1 December 2019 в 07:40
поделиться

Я думаю, вам нужно использовать комбинированный подход:

  • установить срок действия в прошлом (как предлагает Chacha102)
  • использовать JavaScript для удаления записей из объекта DOM document.cookie ( как предложил андрес дескальцо)

Есть две веские причины для использования смешанного подхода:

  • JavaScript можно отключить в браузере
  • не все файлы cookie видны в document.cookie Некоторые современные браузеры поддерживают флаг httponly для печенье. PHP поддерживает файлы cookie httponly, см. http://www.php.net/setcookie
1
ответ дан 1 December 2019 в 07:40
поделиться

Я написал этот плагин для себя, и он работает правильно.

(function($) {
    $.cookieAllDelete = function(doc)
    {
        var cookie_date = new Date();
        var cookies = null;

        cookies = doc.cookie.split(';');
        cookie_date.setTime(cookie_date.getTime() - 1);

        for(var i=0; i < cookies.length; i++) 
        {
            var cookie_name = cookies[i].split('=')[0];
            try {
                if (cookie_name.length > 0)
                    doc.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
            } catch(ex) {}
        }
    }
})(jQuery);

jQuery.cookieAllDelete(document);
-2
ответ дан 1 December 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: