Estoy tratando de usar una sopa hermosa para tomar el código HTML de un sitio web. En lugar de agarrar el href y hacer clic en "página siguiente", me gustaría sopa hermosa para acceder sólo una página a la vez. Así que si una url de una página es:
www.website.com/p1
y mi código para tomar el código HTML de la página 2 es:
from bs4 import BeautifulSoup
from requests import get
import pandas as pd
import itertools
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
headers = {
}
website = "https://www.website.com/this/that/p2"
response = get(website, headers=headers)
print(response)
html_soup = BeautifulSoup(response.text, 'html.parser')
house_containers = html_soup.find_all('div', class_="search-result-content")
Me gustaría crear nuevas urls basadas en la original en el siguiente formato:
count = 2
url = "https://www.website.com/this/that/p"
while count < 65:
print(url + str(count))
count += 1
y luego ejecutar el mismo proceso para cada url creada, ya sea añadiendo el resultado a house_containers o creando una nueva variable en cada iteración como house_containers_page/n
Si es posible, También me gustaría agregar tiempos de sueño entre cada iteración (para evitar captchas y tal).
¿Cómo puedo entrar en una hermosa sopa dentro del bucle while y añadir los resultados a house_containers?
1 respuesta
house_containers
se comporta como una lista normal para que pueda crear una lista vacía al inicio y luego extenderla con una nueva lista desde house_containers
.
Puedes comenzar incluso con count = 1
url = "https://www.website.com/this/that/p"
houses = []
for page in range(1, 65):
webpage = url + str(page)
response = get(website, headers=headers)
html_soup = BeautifulSoup(response.text, 'html.parser')
house_containers = html_soup.find_all('div', class_="search-result-content")
houses.extend(house_containers)
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.