Buenas tardes, estoy haciendo scraping a una pagina que tiene su contenido distribuido en varias paginas. Quisiera saber ¿Cómo puedo indi...

Christopher Giovanny Ortiz Montero

Christopher Giovanny Ortiz Montero

Pregunta
student
hace 6 años

Buenas tardes, estoy haciendo scraping a una pagina que tiene su contenido distribuido en varias paginas. Quisiera saber ¿Cómo puedo indicarle a mi scraper que pase a la siguiente pagina y siga recolectando información?

4 respuestas
    Christopher Giovanny Ortiz Montero

    Christopher Giovanny Ortiz Montero

    student
    hace 6 años

    este es el link de la pagina:

    Sergio Bryan Madrid Nuñez

    Sergio Bryan Madrid Nuñez

    student
    hace 6 años

    Lo que yo hago es jalar los atributos @href de los botones que me llevan a esa página, luego le indico que use ese link, este es uno de los scrapings que hice para farolear más que nada jaja:

    import requests import lxml.html as html import os import time Main = 'https://www.expertoanimal.com/razas-de-perros.html?fbclid=IwAR3HwiVGl0jIvemICfkxcJccbFvePZFybo5EPemdswefCCm7Uwx1Ce0S44w' Pages = 'https://www.expertoanimal.com/razas-de-perros_' #indice.html Search = '//a[@class="titulo titulo--resultado"]/text()' contador = 2 List_of_dogs = [] def parse_pages(): global contador global List_of_dogs EachDog = True #Se repite hasta que la peticion a la página sea aceptada while EachDog: try: response_two = requests.get(f'{Pages}{contador}.html') print(f'{Pages}{contador}.html') if response_two.status_code==200: dog = response_two.content.decode('utf-8') parsed_two = html.fromstring(dog) EachDog = False try: List_of_dogs += parsed_two.xpath(Search) except: print('Mucho testo') else: raise ValueError(response_two.status_code) except ValueError as ve: print(f'Error: {ve}') def parse_page(): global List_of_dogs global contador pasa = True while pasa: try: response = requests.get(Main) if response.status_code==200: eachPage = response.content.decode('utf-8') parsed = html.fromstring(eachPage) try: List_of_dogs += parsed.xpath(Search) for x in range(0,5): parse_pages() contador += 1 pasa = False except: print('Error garrafal') else: raise ValueError(response.status_code) except ValueError as ve: print(f'Un error ha ocurrido: {ve}') def run(): parse_page() with open(f'Razas.txt', 'w', encoding='utf-8') as f: for x in List_of_dogs: f.write(x) f.write('\n') if __name__ == '__main__': run()``` Crea un txt con las razas de todos los perros que hay ahí y pasa a las páginas siguientes
Curso de Ingeniería de Datos con Python

Curso de Ingeniería de Datos con Python

Genera un set de datos capaz de generar predicciones a partir de algoritmos de machine learning. Encuentra fuentes ideales de datos. Trata, limpia y alista información para crear tu dataset y da el primer paso para formarte en la Carrera de Ciencia de Datos.

Curso de Ingeniería de Datos con Python
Curso de Ingeniería de Datos con Python

Curso de Ingeniería de Datos con Python

Genera un set de datos capaz de generar predicciones a partir de algoritmos de machine learning. Encuentra fuentes ideales de datos. Trata, limpia y alista información para crear tu dataset y da el primer paso para formarte en la Carrera de Ciencia de Datos.