Articles of scraping

¿Cuál es la mejor práctica para escribir scrappers web mantenibles?

Necesito implementar algunos raspadores para rastrear algunas páginas web (porque el sitio no tiene API abierta), extrayendo información y guardando en la base de datos. Actualmente estoy usando una sopa hermosa para escribir código como este: discount_price_text = soup.select(“#detail-main del.originPrice”)[0].string; discount_price = float(re.findall(‘[\d\.]+’, discount_price_text)[0]); Supongo que un código como este puede volverse fácilmente inválido cuando […]

¿Alternativas a Selenium / Webdriver para rellenar campos al raspar sin cabeza con Python?

Con Python 2.7 estoy raspando con urllib2 y cuando se necesita algo de Xpath, lxml también. Es rápido , y debido a que rara vez tengo que navegar por los sitios, esta combinación funciona bien. Sin embargo, en ocasiones, cuando llego a una página que solo muestra algunos datos valiosos cuando se llena un formulario […]

¿Cómo obtener todos los datos de una página web manipulando el método de carga diferida?

He escrito algunos guiones en python usando selenium para raspar el nombre y el precio de diferentes productos del sitio web redmart. Mi raspador hace clic en un enlace, va a su página de destino, analiza los datos desde allí. Sin embargo, el problema al que me enfrento con este rastreador es que raspa muy […]

Problema al rastrear Amazon, el elemento no se puede desplazar a la vista

Tengo un problema al rastrear páginas en Amazon. He intentado usar: Ejecutando JS Script Cadenas de accion Esperas explícitas Nada parece funcionar. Todo arroja una excepción o error u otro. Script Base ff = create_webdriver_instance() ff.get(‘https://www.amazon.ca/gp/goldbox/ref=gbps_ftr_s-3_4bc8_dct_10-?gb_f_c2xvdC0z=sortOrder:BY_SCORE,discountRanges:10-25%252C25-50%252C50-70%252C70-&pf_rd_p=f5836aee-0969-4c39-9720-4f0cacf64bc8&pf_rd_s=slot-3&pf_rd_t=701&pf_rd_i=gb_main&pf_rd_m=A3DWYIK6Y9EEQB&pf_rd_r=CQ7KBNXT36G95190QJB1&ie=UTF8’) next_button = ff.find_element_by_xpath(‘(//li/a[contains(text(), “Next”)])[1]’) Intento # 1: Ejecutando JS Guión ff.execute_script(‘arguments[0].scrollIntoView()’, next_button) Error Element could not be scrolled into […]

¿Cómo encontrar el valor del elemento usando Splinter?

Tengo la siguiente pieza de html: foo: foo bar: bar foo2: description: description body another foo: foooo Me gustaría obtener el cuerpo de la descripción utilizando splinter. He logrado obtener una lista de p usando browser.find_by_css(“p.attrs”)

No se puede obtener un contenido generado dinámicamente de una página web

He escrito un script en python usando selenium para obtener el business summary (que está dentro de la etiqueta p ) ubicado en la esquina inferior derecha de una página web bajo el encabezado Company profile . La página web es muy dinámica, por lo que pensé usar un simulador de navegador. He creado un […]

simular un onclick con selenium python

Soy bastante nuevo en el selenium y estoy tratando de averiguar cómo simular un solo clic esto es lo que veo en el código fuente cuando inspecciono la fuente html Lo intenté : driver.find_element_by_css_selector(“a[onlick*=document.getElementById(‘pN’) .selectedIndex]”).click() pero recibo una InvalidSelectorException ¿alguna idea? ¡Gracias!

¿Descargar imágenes de Google Search usando Python da error?

Aquí está mi código: import os import sys import time from urllib import FancyURLopener import urllib2 import simplejson # Define search term searchTerm = “parrot” # Replace spaces ‘ ‘ in search term for ‘%20’ in order to comply with request searchTerm = searchTerm.replace(‘ ‘,’%20’) # Start FancyURLopener with defined version class MyOpener(FancyURLopener): version = […]

Esperando que una mesa se cargue completamente usando selenium con python

Quiero eliminar algunos datos de una página que está en una tabla. Así que solo me molesta la información en la tabla. Anteriormente estaba usando Mechanize, pero a veces descubrí que faltan algunos datos, especialmente en la parte inferior de la tabla. En Google, descubrí que puede deberse a que no se maneja Jquery / […]

Error al capturar fechas de forma personalizada de un contenido tabular

He escrito un script en python en combinación con selenium para analizar algunas fechas disponibles dentro de una tabla en una página web. La tabla se encuentra bajo el encabezado NPL Victoria Betting Odds . Los datos tabulares están dentro de la tabla de tournamentTable identificación. Puedes ver las tres fechas allí: 10 Aug 2018 […]