0
votes

Comment puis-je boucler dans le menu déroulant de cette page sur web-grattant les spécifications et le prix des produits?

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)


0 commentaires

3 Réponses :


0
votes

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


1 commentaires

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?



0
votes

Ce n'est pas une réponse à ce que vous avez recherché, mais pour les squelettes, je vous recommande d'utiliser SELENIUM.

https://selenium-python.readthedocs.io/

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.


1 commentaires

C'est en effet une réponse.



1
votes

Essayez quelque chose de similaire à celui-ci: xxx

impressions: xxx

Le code ci-dessus ne prend que de l'URL spécifique que vous aviez à l'exemple. Cela peut analyser plusieurs URL: xxx


0 commentaires