Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
Extraer datos de un sitio web cuya URL no cambia al hacer clic en un botón de clic en particular

Sitio web: http://www.busonlineticket.com/booking/singapore-to-shah-alam-bus-tickets

Básicamente, estoy tratando de obtener datos sobre los viajes en autobús de este sitio web, pero los datos que obtengo dependen de la fecha seleccionada por el usuario para la que es mi aplicación web.

¿Alguien tiene alguna idea de cómo puedo escribir un programa que pueda extraer datos de las etiquetas <li class='liDaysNew'>

Imagen del sitio web y el DOM en cuestión

Mi código actual es como tal:

 page = requests.get(bus_URL, headers=headers) soup = BeautifulSoup(page.content, 'html.parser') buses = soup.find_all('tr', class_='bustr1') bus_companies = [] depart_times = [] departure_locations = [] arrival_locations = [] prices = [] for bus in buses: bus_company = bus.find('span', class_='buscompanyname').text depart_time = bus.find('span', class_='bustime').text departure_location_div = bus.find('div', class_='mbuspickup1') departure_location = departure_location_div.find('span').text arrival_location_div = bus.find('div', class_='mbusdropoff1') arrival_location = arrival_location_div.find('span').text price = bus.find('price', class_='mbusprice1').text

Sé cómo raspar un sitio web normal, son solo las etiquetas <li class='liDaysNew'> con la lógica onclick lo que me está desconcertando.

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

import requests from bs4 import BeautifulSoup import pandas as pd headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36'} data = {'deptdate': '2022-07-16', ## your departure date 'rtndate': '2022-07-18', ## your return date 'pax': '1', 'way': '1', 'type': 'bus', 'sbf': 'undefined'} r = requests.post("https://www.busonlineticket.com/booking/singapore-to-shah-alam-bus-tickets", headers=headers, data=data) soup = BeautifulSoup(r.text) table_div = soup.select_one('#subtab1') tables = pd.read_html(str(table_div)) df = tables[0] print(df)

Esto devolverá un marco de datos de pandas: ingrese la descripción de la imagen aquí

Por supuesto, puede usar BeautifulSoup para extraer datos de una manera diferente a un marco de datos, como elementos de tabla separados, etc.

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda