Рубрики
Без рубрики

Чтение манги с Python

Фото Миики Лааксонен на Unsplash Что такое манга? Манга (漫画, манга) – это комиксы или гра … Tagged с Python, манга.

Фото Миики Лааксонен на Unsplash

Что такое манга?

Манга (漫画, manga ) – комиксы или Графические романы создан в Япония или используя Японский язык и в соответствии с стилем, развитым в Японии в конце 19 -го века. У них долгая и сложная предварительная история в более раннем Японское искусство Анкет

Допустим, манга – это японские комиксы, которые более популярны и интересны, чем большинство основных комиксов.

Разведка

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

Чтение манги онлайн легко, вы просто посещаете какой -то сайт, например, Mangapanda.com Поиск по некоторым комиксам и прочитайте его. Что если вы хотите загрузить всю комикс сжатие каждой главы к определенному тому и прочитать ее в автономном режиме.

Когда мы идем на Mangapanda.com и ищем конкретный комикс, такой как Наруто, вот какой URL мы направлены

Обратите внимание на Наруто в конце URL, теперь, если мы перейдем к первой главе Наруто, URL преобразуется в http://www.mangapanda.com/naruto/1 Это просто здорово для нас. Обратите внимание, что этого не происходит со всеми сайтами манга, и следите за этим, прежде чем пытаться вырвать любой другой сайт манги. Мы пытаемся скачать изображения, которые существуют в Наруто, глава 1

Давайте напишем небольшую функцию, чтобы получить изображение из URL -адреса

Хорошо, что здесь происходит. Для _download_image мы даем URL, скажем, Mangapanda.com/naruto/1/3 Согласно нашему наблюдению, мы загружаем изображение 3 Наруто. Давайте разбим функцию и поймем, что происходит для каждой строки.

  • requests.get Загрузите источник данного URL

  • Преобразовать документ HTML -исходный код в LXML HTML Tree Это помогает нам легко анализировать теги

  • Получите теги с IMG с выражением, гарантирует это.

    “.//img [ @ID ]/@src “

  • После того, как мы получим URL -адрес, загрузите изображение с помощью запросов.

Загрузка всей главы

Хорошо, что главы в формате/главе/page_number Так как мы можем загрузить все изображения конкретной главы, если мы не знаем конечный номер главы. Если мы знаем окончательную главу, мы можем просто использовать диапазон и цикл по номеру изображения для загрузки.

Если мы видим исходный код, есть этот интересный тег.

Там написал это, чтобы пользователи могли выбрать номер страницы в форме выпадения. Мы можем использовать дерево формата LXML для этого .//* [@id]/option [last ()]/text () и получить последнее событие идентификатора Pagemenu, которая является конечной страницей главы.

Давайте написать обернуть это в небольшую функцию

Теперь мы знаем номера страниц глав, которые мы собираемся скачать. Мы можем просто получить все изображения из главы параллельно, отсортировать их, а затем сжать их, чтобы сделать один том.

Давайте использовать ThreadPoolexeCutor и написать асинхронную функцию для следующей работы.

properties = json.load(open("configs.json"))

base_url = properties.get("base_url") + "/" + properties.get("manga_name")

Мы можем определить Manga_name и Base_url в configs.json, чтобы нам не приходилось давать имя манги каждый раз, когда мы загружаем главу.

Функция download_chapter создает каталоги на основе Manga_Name и Number № Главы

➜  naruto git:(master) ✗ tree
.
└── 1
    ├── 1.jpg
    ├── 10.jpg
    ├── 11.jpg

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

Мы можем обернуть все классическим Главный так что, если мы дадим номер главы, мы скачаем весь комикс

в действии

Мы можем запустить сценарий следующим образом

Отказ от ответственности: это только для чистой образовательной цели. Не используйте это коммерчески для пиратства или для атаки Mangapanda.com

Оригинал: “https://dev.to/vinaybommana7/reading-manga-with-python-c15”