0
votes

Python Web grattez à l'aide d'une belle soupe - retournez tous les détails du produit d'une page

Toutes mes excuses pour la question de la très nouvelle-novice, mais je ne fais que commencer mon voyage en python et commencer à apprendre à faire de la marque de plaisance.

J'ai écrit du code pour gratter un site Web de mode et retourner des bits d'informations de produit. Ce que j'aimerais vraiment faire à la place, c'est gratter la page de catégorie principale et retirer tous les noms de produits et tous les prix. Je pense que je devrai utiliser A pour boucle, et j'ai essayé diverses itérations que j'ai trouvées en regardant sur ce site, mais je n'arrive pas à le faire fonctionner. P>

Je veux tirer le Nom du produit et prix pour tous les articles de la page afin que je puisse alors exporter. Le code ci-dessous fonctionne bien pour renvoyer le premier élément de la page, mais je ne sais pas comment ajouter une boucle pour obtenir le reste. P>

import requests
from bs4 import BeautifulSoup
url = 'https://www.riverisland.com/c/men/seasonal-offers?icid=mhp/winter-treats/m/seasonal-offers/cat'

page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')

data_item = []
  for item in name_box, price_box:
  data_item.append()

  name_box = soup.find('div', attrs={'class':'product__title ui-body-text'})
  price_box = soup.find('div', attrs={'class':'product-price__headline-product-price__headline--sale'})

  name = name_box.text.strip()
  price = price_box.text.strip()


2 commentaires

Souhaitez-vous mettre à jour la question sur les informations que vous souhaitez ramper et quel type d'erreur se produisent?


Toutes mes excuses, ont essayé d'être un peu plus précis


3 Réponses :


1
votes

Vous devez obtenir tous les produits de la page. Trouver Vous obtient uniquement le premier produit. Vous devez utiliser Find_All pour obtenir tous les produits dans la page. Ensuite, vous pouvez la boucler et les imprimer. xxx

sortie xxx


2 commentaires

Merci, je n'avais aucune idée de Find_All, cela rend le sens total!


@Scottsebe Vous pouvez en trouver plus sur cela dans le lien (qui est la documentation officielle).



1
votes

d'accord. Vous avez fait la minute erreur. Ce que vous essayez de crawler est un nom de produit unique via trouver . Au lieu de cela, vous devez essayer wind_all pour tout le produit.

L'autre chose est dans votre Price Données d'analyse, en fait deux Classe qui devrait être combine par . au lieu de - < / code>.


0 commentaires

0
votes

Je vais essayer de trouver une solution pour vous, mais pour maintenant, essayez d'utiliser la fonction xxx


0 commentaires