Enregistrez les images de votre site Web sur votre PC à l'aide de requêtes Python et de Beautiful Soup. À propos, l'image est affichée lorsque le script est exécuté.
Je souhaite enregistrer une image de parfum. J'ai pensé que ce serait pratique s'il pouvait être sauvegardé automatiquement.
OS | Windows 10 |
---|---|
Python | 3.7.3 |
requests | 2.22.0 |
beautifulsoup4 | 4.8.2 |
main.py
import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
import cv2
root = "https://www.perfume-web.jp/"
url = "https://www.perfume-web.jp/index-jpn.php"
store_path = "PATH"
def img_store(path):p
img = requests.get(path).content
print(path)
with open(store_path, "wb") as f:
f.write(img)
img_local = cv2.cvtColor(cv2.imread(store_path), cv2.COLOR_BGR2RGB)
plt.imshow(img_local)
plt.show()
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
top_img = soup.find("div", id="main").find("img").get("src")
img_store(root+top_img)
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
top_img = soup.find("div", id="main").find("img").get("src")
Extrait le HTML de l'URL spécifiée. (Lignes 1 et 2) Ensuite, lisez le HTML du site. Vous pouvez lire la méthode dans la fenêtre qui apparaît lorsque vous cliquez avec le bouton gauche sur Chrome et sélectionnez «Vérifier». Cette fois, je veux prendre l'image du haut de la page WEB, j'ai donc spécifié le principal de la balise div. Find () ne récupère que le premier qui apparaît même s'il a la même balise ou identifiant, donc une seule valeur est renvoyée. J'ai le src de la balise img dedans. Vous ne pouvez trouver les balises et les identifiants en HTML qu'en lisant le site et en HTML et en concevant vos propres idées. De nombreuses fonctions sont fournies dans bs4 pour acquérir des éléments plus complexes.
top_img = soup.find("div", id="main").find("img").get("src")
def img_store(path):p
img = requests.get(path).content
print(path)
with open(store_path, "wb") as f:
f.write(img)
img_local = cv2.cvtColor(cv2.imread(store_path), cv2.COLOR_BGR2RGB)
plt.imshow(img_local)
plt.show()
Le chemin de l'image étant un chemin relatif, j'ai préparé le domaine du site en tant que root et créé l'URL correcte de l'image en me connectant au chemin relatif de l'image acquise. Le reste est enregistré et affiché. C'est un passe-temps affiché par matplotlib. Cela fait du bien d'avoir une échelle en fonction du nombre de pixels.
Il sera affiché comme ceci. (J'ai caché les visages précieux des trois personnes. Si vous voulez le voir, veuillez visiter le Site officiel du parfum) Vous pouvez enregistrer d'autres images en modifiant la façon dont vous recherchez des images.
J'ai essayé le web scraping comme tremplin vers l'idée qu'il serait bien que le site soit mis à jour automatiquement. Il semble qu'il existe différentes règles et lois pour le scraping Web, veuillez donc vous référer au site suivant. C'est une sorte d'attaque qui met une charge sur le serveur de l'autre partie. .. .. https://qiita.com/nezuq/items/c5e827e1827e7cb29011 Pour le débogage et la pratique, c'est une bonne idée d'enregistrer et d'utiliser tout le code HTML de votre site une fois. C'est effrayant d'avoir une boucle infinie inattendue.
http://kondou.com/BS4/ https://qiita.com/Azunyan1111/items/9b3d16428d2bcc7c9406 https://qiita.com/YosukeHoshi/items/189c615187f41f2f4e27
Recommended Posts