· Mac ・ Python3
Créez un répertoire fortnite sur votre bureau. Créez un dossier images (pour enregistrer les images) et scraping.py dans le répertoire.
fortnite
├scraping.py
└images
Créez un environnement virtuel dans le répertoire.
python3 -m venv .
sorce bin/activate
Installer les packages et modules requis
pip install beautifulsoup4
pip install requests
pip install lxml
Le grattage d'images de Fortnite utilise les résultats de recherche d'images de Yahoo. https://search.yahoo.co.jp/image/search?p=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%88%E3%83%8A%E3%82%A4%E3%83%88&ei=UTF-8&b=1 Il peut être confirmé qu'il y a 10 images par page, et qu'il y a plus de 100 images, y compris les pages suivantes. Grattez d'ici et stockez dans le dossier images.
.py:scraping.py
from bs4 import BeautifulSoup
import lxml
import requests
import os
import time
def main():
#20 images par page, variables pour gratter la page suivante
page_key=0
#Variables de numérotation des images enregistrées
num_m = 0
for i in range(6):
URL = "https://search.yahoo.co.jp/image/search?p=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%88%E3%83%8A%E3%82%A4%E3%83%88&ei=UTF-8&b={}".format(page_key + 1)
res = requests.get(URL)
res.encoding = res.apparent_encoding
html_doc = res.text
soup = BeautifulSoup(html_doc,"lxml")
list = []
_list = soup.find_all("div",class_="gridmodule")
for i in _list:
i2 = i.find_all('img')
for i3 in i2:
i4 = i3.get('src')
list.append(i4)
for i in list:
i2 = requests.get(i)
#Enregistrer avec chemin absolu
with open(os.path.dirname(os.path.abspath(__file__)) + '/images' + '/{}'.format(num_m)+'.jpeg','wb')as f:
f.write(i2.content)
num_m += 1
#Arrêtez le processus de sauvegarde lorsque la 101ème image est atteinte (arrêt pour instruction)
if num_m == 101:
break
#Lorsque l'instruction for du processus de sauvegarde interne est arrêtée, le processus d'arrêt de l'instruction for externe également
else:
continue
break
#Ouvrez 1 seconde d'intervalle pour éviter la charge du serveur
time.sleep(1)
page_key+=20
if __name__ == '__main__':
main()
-À la suite de la recherche d'un emplacement probable de l'URL de l'image à l'aide de la "vérification" de Google Chrome, il a été confirmé que la classe de la balise div se trouve dans la partie gridmodule. Gratter la partie tag img à partir de là -Obtenir la valeur de l'attribut src de la balise img avec get ('src'). -Bien que l'attribut src de la balise img acquise soit url, il est de type str, donc l'objet de réponse qui stocke les informations de réponse est acquis par les requêtes. Les objets de réponse incluent le texte, l'encodage, le status_code et le contenu. le contenu est nécessaire pour obtenir le corps de la réponse au format binaire. (Référence) Comment utiliser les requêtes (bibliothèque Python) -Spécifiez le chemin absolu dans le fichier et écrivez en mode wb (référence) Python, opération du système d'exploitation -Après avoir enregistré 100 feuilles avec l'instruction for, annulez l'instruction for interne et l'instruction for externe. Python pour rupture de boucle (condition de rupture)
Recommended Posts