[PYTHON] J'ai essayé de gratter la publicité du site de dessin animé piraté

Contexte

Un ami lisant un manga sur un site de manga piraté appelé manga1001.com "Il y a beaucoup de publicités radicales que je ne peux pas voir à l'extérieur, et lorsque j'utilise Adblock, je reçois un avertissement." J'ai dit, effaçons-le! J'ai pensé.

Mise en garde

De plus, si vous faites quelque chose de similaire à cet article,

S'il vous plaît soyez prudente. Vous pouvez être coupable.

Méthode

  1. Entrez n'importe quelle URL dans manga1001.com
  2. Ouvrez Chrome
  3. Obtenez le src de ʻimg`
  4. Créez un fichier HTML
  5. Écrivez le src obtenu comme ʻimg`
  6. Ouvrez le fichier HTML

Code source

J'utilise Chrome Canary pour que ce soit correct s'il casse.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary
from time import sleep

#Chemin de sortie du fichier HTML généré
output_path = '/Users/hoge/fuga/'

#Options du Webdriver
options = Options()
#Spécifiez le chemin de Google Chrome Canary
options.binary_location = '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary'
#Spécifiez la taille de la fenêtre
options.add_argument('window-size=1600,900')

#Demandez l'URL de la page sur laquelle vous souhaitez supprimer l'annonce
url = input('enter url: ')

#Lancer Chrome
driver = webdriver.Chrome(options=options)
driver.get(url)

#Attendez un instant que la page exécute JavaScript
sleep(3)

#Obtenir le titre
title = driver.find_elements_by_class_name('entry-title')[0].text

#Obtenir WebElement de l'élément img sous forme de tableau
contents = driver.find_elements_by_css_selector('.entry-content figure img')

#Attribuer une chaîne de caractères à afficher au format HTML à la sortie de la variable de sortie
output = '''
<!DOCTYPE html>
<html>
<head>
<style>
body{
  background-color:#333;
}
img{
  display: block;
  margin: 10px auto;
  width: 100%;
  max-width: 600px;
  box-shadow: 0 0 10px black;
}
</style>
</head>
<body>
'''

#Ajoutez l'attribut src de l'élément img acquis à la sortie en tant qu'image
for content in contents:
  output += '<img src="{}"/>'.format(content.get_attribute('src'))

#Ajouter une balise de fermeture à la sortie
output += '</body></html>'

#Créez un fichier HTML avec le nom du titre et écrivez la sortie
with open('{0}{1}.html'.format(output_path, title), 'w', encoding='utf-8') as f:
  f.write(output)

#Ouvrez le fichier HTML créé
driver.get('file://{0}{1}.html'.format(output_path, title))

Ce qui a été fait

manga1001.com_scraping.gif

Impressions

J'ai pu organiser proprement le contenu du site encombré en grattant. Encore une fois, je ne vais pas m'en servir moi-même et je n'ai pas donné ce programme à un ami. Je voulais juste gratter! Lol

Recommended Posts

J'ai essayé de gratter la publicité du site de dessin animé piraté
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de gratter
J'ai essayé la fonction de tableau croisé dynamique des pandas
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé d'utiliser le filtre d'image d'OpenCV
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
L'édition définitive du grattage python! (Site cible: grande caméra)
J'ai essayé la méthode la plus simple de classification de documents multi-étiquettes
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé d'exécuter l'exemple de code du module Ansible
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de gratter avec Python
Grattage du résultat de "Schedule-kun"
J'ai essayé la bibliothèque changefinder!
J'ai essayé de gratter avec du python
J'ai essayé de trouver l'entropie de l'image avec python
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de refactoriser le modèle CNN de TensorFlow en utilisant TF-Slim
J'ai essayé la reconnaissance faciale du problème du rire en utilisant Keras.
J'ai essayé l'analyse morphologique du commentaire général du putain de jeu de l'année
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Grattez automatiquement le site reCAPTCHA quotidiennement (6/7: conteneurisation)
Grattez automatiquement le site reCAPTCHA quotidiennement (5/7: 2captcha)
Grattez automatiquement le site reCAPTCHA quotidiennement (4/7: traitement des fichiers S3)
Grattez automatiquement le site reCAPTCHA tous les jours (1/7: construction de l'environnement python)
Grattez automatiquement le site reCAPTCHA quotidiennement (3/7: traitement des fichiers xls)
L'édition définitive du grattage python! (Site cible: grande caméra)
J'ai essayé de gratter la publicité du site de dessin animé piraté
Principes de base du grattage Python
J'ai essayé un peu le comportement de la fonction zip
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
J'ai affiché le chat de YouTube Live et essayé de jouer
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
J'ai essayé le tutoriel TensorFlow 1er
J'ai essayé le roman Naro API 2
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai essayé webScraping avec python.
J'ai essayé de créer l'image de démarrage SD de LicheePi Nano
J'ai essayé d'utiliser GrabCut d'OpenCV
Je l'ai découvert en analysant les avis du site de changement d'emploi! ??
J'ai essayé le tutoriel TensorFlow 2ème
J'ai regardé les méta-informations de BigQuery et essayé de les utiliser
J'ai essayé d'agrandir la taille du volume logique avec LVM
J'ai essayé l'API du roman Naruro
J'ai essayé d'exécuter la partie DNN d'OpenPose avec le processeur Chainer
J'ai essayé de résumer la méthode de mise en œuvre fréquemment utilisée de pytest-mock
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de visualiser la condition commune des téléspectateurs de la chaîne VTuber
J'ai essayé de déplacer le ballon
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'estimer la section.
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons