Bonjour, je suis relativement nouveau à Python et au grattage Web. J'essaie de gratter les données de chaque option de produit dans le menu déroulant de cette page ( https://www.jmesales.com/kuriyama-3-4-in-brass-quick-couplings/ ). Je crois que la page n'utilise pas JavaScript et je préférerais simplement utiliser des demandes et de la belle-analyse, par opposition à un webDriver. J'ai un code qui peut me procurer le nom et l'attribut la valeur de chaque option, mais je ne sais pas comment accéder aux données de tarification et de spécification associées à chaque option. Ceci est mon code:
from urllib.request import urlopen from bs4 import BeautifulSoup import requests url = 'https://www.jmesales.com/kuriyama-3-4-in-brass-quick-couplings/' headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"} res = requests.get(url, headers=headers) soup = BeautifulSoup(res.text,'lxml') options = [item['value'] for item in soup.select('#attribute_select_42800 option')] for option in options: print(option)
3 Réponses :
Espérons que cela aidera:
from pyautogui import typewrite amount_of_options = 4 # Amount of options in the menu typewrite(['enter']) # Click on the dropdown menu for i in range(amount_of_options): typewrite(['tab']) # Each tab will navigate to the next option in the menu
Merci pour votre réponse! Je suis désolé, je ne suis pas très compétent à ce sujet. Comment utiliser cela pour accéder aux données que je suis après?
Ce n'est pas une réponse à ce que vous avez recherché, mais pour les squelettes, je vous recommande d'utiliser SELENIUM. P>
https://selenium-python.readthedocs.io/ P>
C'est aussi simple que, ouvrez le navigateur et vous pouvez faire ce que vous voulez. Ce que je ferais, c'est chercher les xpaths et chercher un modèle à itérer. P>
C'est en effet une réponse.
Essayez quelque chose de similaire à celui-ci: impressions: p> Le code ci-dessus ne prend que de l'URL spécifique que vous aviez à l'exemple. Cela peut analyser plusieurs URL: p>