Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

96
Views
Python accediendo a elementos específicos en el sitio web de Menards

Actualmente estoy tratando de crear un script de python que pueda ingresar al sitio web de Menards y obtener todas las descripciones de sus productos, SKU y precio y luego importarlos a un archivo de Excel. Entonces puedo crear tablas dinámicas o hacer otras cosas con sus productos. Actualmente, pude hacerlo funcionar usando XPath, etc. Pero este método no es muy sólido ya que se basa en la ruta específica para cada página web diferente. Lo que quiero hacer es hacer algo más robusto que pueda usarse en el sitio web que estoy viendo. Estos son los sitios web a los que me refiero.

 https://www.menards.com/main/electrical/conduit-conduit-fittings-raceways/conduit/c-6423.htm?queryType=allItems&rid=ipKkIrbnch&shippingOptions_facet=Pickup+at+Store+Eligible' https://www.menards.com/main/electrical/conduit-conduit-fittings-raceways/conduit-fittings-supports/c-9538.htm queryType=allItems&shippingOptions_facet=Pickup+at+Store+Eligible&sortby=priceAsc' https://www.menards.com/main/electrical/light-switches-dimmers-outlets/light-switches/c-6324.htm?queryType=allItems&Spec_Color%2FFinishFamily_facet=Ivory&Spec_Color%2FFinishFamily_facet=Light+Almond&Spec_Color%2FFinishFamily_facet=White&shippingOptions_facet=Pickup+at+Store+Eligible&sortby=priceAsc/'

IRW = https://www.menards.com/main/electrical/electrical-wire-cable/indoor-electrical-cable/c-6441.htm?queryType=allItems&rid=HA1P3WveKh&shippingOptions_facet=Pickup+at+Store+Eligible

Este es el código que tengo actualmente para tratar de encontrar un diseño más robusto.

 driver.get(website.get('IRW')) driver.minimize_window() description = driver.find_elements(By.CSS_SELECTOR, ".search-item") print(len(description)) for ll in range(0, 1): print(description[ll].text)

Actualmente, este código solo ubica todos los elementos en la página web por su nombre de clase "elementos de búsqueda". Que ubica la mayoría de los elementos y demás, pero sin embargo obtengo mucha basura con los resultados que quiero. Aquí hay un ejemplo de lo que soy salida del código:

 > 11 Click here to go to detail page Bestseller 12 Variations Available > 12 Gauge NM-B Cable with Ground Wire Click to add item "12 Gauge NM-B > Cable with Ground Wire" to the compare list Compare Click to add item > "12 Gauge NM-B Cable with Ground Wire" to the compare list Add To List > Click to add item 12 Gauge NM-B Cable with Ground Wire to your list > Sku # 3691660 $25.79 You Save $3.19 with Mail-In Rebate More > Information Shipping CHOOSE VARIATION None

Quiero evitar tener que reemplazar la cadena actual y hacer muchos bucles para obtener los valores, ya que toda esta basura no es consistente en todas las páginas web. Espero que sea una mejor manera de ubicar los elementos. Cualquier idea gracias!

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puedes usar el css hijo > y descendiente combinadores para especificar hijos o descendientes directos (respectivamente) de padres con search-item clase, en una secuencia que aísla solo los href de interés

 links = [i.text for i in driver.find_elements_by_css_selector("#search-items > .search-item .details > a")]
about 4 years ago · Juan Pablo Isaza Report

0

Gracias QHarr. Pude descubrir cómo acceder a otras clases con esta clase específica. La línea de código que me permite hacer esto es la siguiente:

 #for description description = [i.text for i in driver.find_elements(By.CSS_SELECTOR, "#search-items > .search-item .details > a > .row.pt-5.pb-sm-5 > .multilines-3.text-truncate-multilines.xs-single-col-8.col-12 > .font-weight-bold.text-dark")] print(description)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!