Apprenez à gratter avec Python + Beautiful Soup.
Je souhaite télécharger uniquement des images du site Web, J'ai facilement pensé que ce serait facile si je pouvais le gratter, mais c'était étonnamment difficile, alors j'écrirai ce que j'ai fait pour le moment.
Je voulais apprendre le scraping, donc je ne ferai pas de partie pour télécharger des images. Il utilise le logiciel gratuit Irvine du téléchargeur. Renumérotez également les fichiers image téléchargés avec les noms de fichiers numérotés et combinez-les dans un fichier Zip. Le flux est le suivant.
Au fait, si vous utilisez correctement les fonctions d'Irvine, vous pouvez tout faire sans rien faire! Ne dis pas ça. Le but est d'apprendre le grattage.
Réalisé sous Windows 10. Si vous utilisez chocolatey, pour installer python3, démarrez cmd ou Windows PowerShell avec des privilèges d'administrateur et exécutez la commande suivante.
> choco install python
S'il y a des choix en cours de route, y + Entrez tout. Une fois l'installation terminée, rouvrez cmd ou PowerShell et exécutez la commande suivante.
> pip install requests
> pip install bs4
> pip install pyperclip
Téléchargez le code source (zip) depuis Git et décompressez-le. Le chemin développé est "Git / transing /". Téléchargez et installez Irvine et démarrez-le. Créez un nouveau dossier "folder01" dans le dossier par défaut. Le dossier nouvellement créé "folder01" est le script "HTML2imglist.py" Disons un chemin avec. Vous pouvez le modifier ultérieurement en sélectionnant "Paramètres du dossier" dans le menu contextuel du "dossier01". "Dossier 01" a été ajouté à Irvine. Sélectionnez "Outils" - "Paramètres des options" dans le menu. Ouvrez l'onglet "Presse-papiers" et activez la case à cocher "S'inscrire directement depuis le presse-papiers". Cliquez sur le bouton OK pour fermer. Sinon, vous devrez peut-être sélectionner «Gérer» - «Moniteur du Presse-papiers» dans le menu pour l'activer. À ma main, cela fonctionnait, qu'il soit activé ou désactivé.
L'explication visera le site Web, qui a des données ouvertes de la préfecture locale d'Ishikawa.
Ciblez les images miniatures suivantes de sites pittoresques.
Si vous démarrez l'invite de commande (cmd) avec le chemin "Git / traning", déplacez le chemin vers "Git / traning / python / Web_scraping". Exécutez le script en spécifiant l'URL du site Web contenant l'image que vous souhaitez télécharger comme argument.
> cd .\python\Web_scraping
> python Html2imglist.py https://www.hot-ishikawa.jp/photo/
Ensuite, le titre et la liste des URL de l'image sont copiés dans le presse-papiers. Démarrez Irvine et collez-le dans "folder01" pour démarrer le téléchargement, attendez qu'il se termine. Si vous revenez à l'invite de commande et appuyez sur n'importe quelle touche, le fichier image téléchargé sera renommé sous le nom de fichier numéroté et combiné dans un fichier Zip. ↑ "folder01.zip" est créé. Si vous appuyez sur n'importe quelle touche, le dossier "folder01" sera vidé. Essayez de faire glisser et de déposer "folder01.zip" vers un logiciel de visualisation, tel que Image Viewer. Il a été affiché en toute sécurité. Image Viewer passe à la diapositive suivante avec la touche → et à la diapositive précédente avec la touche ←.
Affichez le code source du site ciblé "Téléchargement de matériel photo | Hot Ishikawa Tabi Net" et vérifiez la balise de titre. L'exprimer avec un sélecteur CSS donne "html head title". Vérifiez également la structure des balises jusqu'au fichier image. Le fichier que vous souhaitez télécharger a l'attribut src suivant.
Ligne 475:<img class="img-responsive" src="/photo/thumbnail/749/trim/1/1?v=0ca07195022078860363c009b75962f59c80bde5" alt="Kenrokuen">
~
Ligne 486:<img class="img-responsive" src="/photo/thumbnail/740/trim/1/1?v=f4145f658b274299f83a6038ef58f9b8d0cb5ac1" alt="Gare de Kanazawa">
La séquence des balises jusqu'à ce point est la suivante.
<html>
<body>
~
<div class="photoItems">
<ul>
<li>
<div class="photoItem">
<a>
<img src="1ère image cible">
</a>
</div>
</li>
<li>
<div class="photoItem">
<a>
<img src="2ème image cible">
</a>
</div>
</li>
Les exprimer avec les sélecteurs CSS est "html body div .photoItems ul li div .photoItem a img". Un peu abrégé en "html body div .photoItem img".
Étant donné que la façon dont ce fichier image est décrit varie en fonction du site Web, il peut être spécifié avec les variables suivantes dans le fichier HTML2imglist.py.
Ligne 50: titre_css_select = 'html head title'
Ligne 51: img_css_select = 'html body div .photoItem img'
Ligne 52: img_attr = 'src'
Je pensais que le sélecteur CSS se grattait. Dans cet esprit, cet article n'a rien appris sur le grattage, mais ce doit être un blâme.
Site ciblé
référence
Recommended Posts