• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Программирование Python

Статья Объединение документов формата Microsoft Word в один с помощью Python

  • 2 815
  • 0
Не могу сказать за всех, а у меня иногда возникает необходимость в объединении нескольких файлов формата «.docx» в один документ. И зачастую это приходиться делать вручную, что занимает довольно много времени, так как большая его часть уходит на открытие документа, копирование и вставку в объединенный документ. Чтобы ускорить данный процесс я попробовал написать небольшой скрипт на Python, который делает все указанные операции в автоматическом режиме.

000.jpg

Первым делом, при решении данной задачи приходит на ум использование библиотеки python-docx. И да, она может помочь решить задачу частично. То есть, если ваши потребности невелики, а документ не содержит картинок и таблиц, то можно воспользоваться решением на основе данной библиотеки. Конечно же, нельзя сказать, что с ее помощью нельзя перенести документ полностью. Однако, здесь потребуется написать отдельный модуль для анализа содержимого документа, который будет определять, какой тип блоков присутствует и на основе этого формировать новый документ. Этого мы делать не будем, так как есть несколько более простое решение. Но, для полноты картины давайте рассмотрим, как можно объединить текст в нескольких документах с помощью python-docx.

Статья Определение технологий используемых сайтом с помощью Wappalyzer и Python

  • 2 055
  • 2
Иногда, при исследовании сайта необходимо знать, какие технологии использовались при его разработке, а также используются в данный момент. Инструментов, которые предоставляют такой функционал не так уж и много. Одним из популярных решений является Wappalyzer. Посмотрим, как можно использовать данный инструмент при определении технологий с помощью Python.

000.jpeg

Конечно же, если вы установите Wappalyzer в браузер, в качестве расширения, точность определения технологий, а также количество сайтов, на которых можно их определить, будет значительно выше. Так как при анализе данных иногда перехватываются запросы, если не представляется возможным определить технологии иным способом. Тем не менее, если вам нужно проверить большое количество сайтов, использование автоматизации существенно облегчит данную задачу. Давайте попробуем написать небольшой скрипт, который использует Wappalyzer при определении технологий...

Статья Работа с форматом CSV с помощью Python

  • 4 833
  • 1
О формате CSV, а также о том, как работать с ним с помощью Python существует большое множество статей. И, казалось бы, что такого сложного в том, чтобы прочитать или записать данный формат. Однако, вспоминая себя и то время, когда я только начал изучать Python я хорошо помню некоторое недопонимание этого вопроса. Может быть, поэтому я решил написать эту небольшую статью. Конечно же, рассмотреть все тонкости и нюансы думаю, что не получиться, но вот базовые операции с данным типом файлов я постараюсь описать.

000.jpg

Давайте начнем с определения формата. Что же такое CSV-файл? CSV – это аббревиатура. В более развернутом варианте звучит это так - Comma-Separated Values, то есть, значения, разделенные запятыми. Данный формат был разработан для представления табличных данных. Таким образом, каждая строка таблицы соответствует строке текста. В такой строке содержится одно или несколько полей, которые разделены запятыми.

Данный формат...

Статья Перехват базовых запросов с помощью Selenium Wire и Python

  • 6 577
  • 27
В данной статье я хотел бы вернуться к способам перехвата запросов и ответов API в браузере. С помощью Selenium в связке с Python можно парсить достаточно сложные сайты, которые требуют выполнения различного рода скриптов. Но иногда этого бывает недостаточно и требуется получить данные, которые возвращает API на внешний интерфейс. В этом случае можно воспользоваться локальным прокси-сервером, как в этой статье (Статья - Перехват запросов с веб-страницы с помощью selenium и browsermobproxy в Python). Или, для перехвата запросов и ответов, можно воспользоваться Wireshark. Но это уже будет внешнее приложение. Давайте разберемся, как с помощью дополнительной библиотеки и Python перехватывать запросы и ответы без использования внешнего прокси.

000.png


Давайте поставим некоторую задачу...

Статья Автоматизированный сбор данных с сайта бесплатных объявлений с помощью Python

  • 5 917
  • 7
Решил я тут на днях попробовать парсить Авито. Наверное, раньше это была одна из излюбленных площадок для обучения парсингу. И, действительно, ещё примерно год назад можно было собирать данные с этой площадки особо не напрягаясь. Но, возможно, в связи с громкими утечками данных защита от парсинга значительно усилилась. Сначала появились временные телефоны, которые, насколько я понимаю, выделяются на виртуальной АТС. И если ещё какое-то время назад их можно было посмотреть без авторизации, то теперь это обязательное условие. Единственные, чьи телефоны остались доступны для просмотра, это телефоны организаций. Но, сами по себе они ценности не имеют, так как, по сути, доступны в любом онлайн справочнике.

000.png

Впрочем, авторизацию и даже двухфакторную аутентификацию с помощью SMS обойти вполне возможно. Вот только использование виртуальных номеров напрочь обесценивает эту затею. Так что Авито теперь парсить...

Статья Загрузка файла частями с помощью и без использования потоков в Python

  • 3 591
  • 0
Загрузка файлов из интернета — это всегда интересная задача. Конечно, в нынешнее время, когда скорости соединения переваливают за сотню мегабит в секунду, это вопрос не такой актуальный, как раньше. Мне стало интересно потестировать скорость загрузки файлов и изображений с разных сайтов с использованием Python.

000.jpeg

Может быть вы помните, был такой Download Manager. Впрочем, он и сейчас существует. Но когда-то его популярность просто зашкаливала. Еще бы. Позволяет качать файлы в несколько потоков. Докачивает файлы при обрыве соединения. Но, речь сейчас не о нем. Давайте попробуем реализовать многопоточную загрузку файлов с помощью Python и сравнить, сильно ли отличается скорость загрузки.

Что потребуется?

Для работы скриптов потребуется установить библиотеку requests. С ее помощью мы будем загружать тестируемые файлы. Для ее установки пишем в терминале:

pip install requests...

Статья Методы обхода защиты от автоматизированного ПО в браузере Chrome под управлением Selenium в Python

  • 14 679
  • 3
При парсинге данных возникают ситуации, когда нужно получить доступ к сайту с помощью драйвера selenium. Так как на странице сайта в коде выполняются скрипты, которые добавляют в код данные, доступ к которым с помощью обычных запросов получить просто не получиться. Но, все может быть немного печальнее. К примеру, страница может находиться за CDN, такой как Cloudflare, с включенной проверкой браузера. В этом случае обычный драйвер selenium доступ к странице не получит, так как будет определено, что используется автоматизированное тестовое ПО. Но, даже в этих случаях выход есть. Давайте посмотрим, как можно обойти данную проверку с помощью отключения определенных опций в браузере, а также рассмотрим уже модифицированную версию драйвера для Chrome, в которой уже из коробки отключены данные опции. Но, обо всем по порядку.

prew.jpg

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

Статья Создаем приложение для хранения данных в базе sqlite с помощью Python и Qt. Часть 02

  • 4 334
  • 0
Данная статья является продолжением первой части (Создаем приложение для хранения данных в базе sqlite с помощью Python и Qt. Часть 01) в которой мы начали создавать приложение для хранения документов в формате HTML в базе данных sqlite с помощью Python и Qt Designer. И если в первой части мы рассмотрели код для взаимодействия с базой данных, то в этой части сосредоточимся на создании графического интерфейса и описания программной части для взаимодействия с его элементами.

000_02.png

Что потребуется?

Как устанавливать Qt Designer в операционных система мы рассмотрели в предыдущей статье. На всякий случай напомню как это делается, если вы первую часть не читали. Для установки Дизайнера в операционной системе Linux необходимо выполнить последовательно...

Статья Реализация метода HTTP-запроса «GET» с помощью socket в Python

  • 3 265
  • 0
Наверное все пользовались библиотекой requests и знакомы с ее методом GET. Давайте попробуем с помощью библиотеки socket реализовать модуль для выполнения простых функций данного метода, таких как: статус-код, заголовки и тело запроса.

000.jpg

Конечно же, мы не будем писать свою библиотеку requests, потому как в этом нет необходимости. Но, думаю, что нужно знать, как выполнить запрос к сайту или по определенному адресу с помощью socket. Иногда появляются такие задачи, где requests, просто не работает. Для примера, есть онлайн трансляции, адрес которых начинается не с привычных http или https, а с другого протокола rtmp. Если попробовать выполнить запрос указав такой адрес в requests, вы получите сообщение о том, что невозможно выполнить соединение потому, что схема адреса не соответствует стандартам. А вот с помощью сокетов это реализовать вполне по силам. Итак, давайте перейдем от теории к делу и откроем IDE, в которой вы...

Статья Создаем приложение для хранения данных в базе sqlite с помощью Python и Qt. Часть 01

  • 4 196
  • 0
В данной статье я попытаюсь создать приложение, которое позволяет сохранять в базу данных файлы в формате HTML. За все время, проведенное в интернете и поиске самой разнообразной информации натыкаешься на большое количество самых разнообразных страниц и статей, которые в данный момент прочитать не получается. В этом случае можно поступить по разному. Кто-то просто сохраняет ссылку в браузере, кто-то добавляет страницы в агрегаторы ссылок. Кто-то сохраняет страницы на жесткий диск, особенно, если это информация, которая может потребоваться в дальнейшем. Я отношусь скорее к последним. И за долгое время накапливается большое количество сохраненных страниц, в которых становиться довольно сложно ориентироваться. Поэтому я решил сделать небольшое приложение на Python, которое частично помогло решить мне эту задачу.

000_01.png

Для начала, почему формат HTML. Ну, во-первых, это просто удобно. В случае, если вам нужно что-то...