Python & BS4 pagination loop - PullRequest
       16

Python & BS4 pagination loop

0 голосов
/ 09 июля 2019

Я новичок в изучении веб-страниц и пытаюсь сделать это на этой странице https://www.metrocuadrado.com/bogota.

Идея состоит в том, чтобы извлечь всю информацию. До сих пор я был в состоянии сделать это только с одной страницей, но я не знаю, как сделать это с нумерацией страниц. Есть ли способ сделать это на основе кода, который у меня уже есть?

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

# opening up connection, grabbing html
my_url = 'https://www.metrocuadrado.com/bogota'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

# html parser
page_soup = soup(page_html, "html.parser")


# grabs each product
containers = page_soup.findAll("div",{"class":"detail_wrap"})

filename = "metrocuadrado.csv"
f = open(filename, "w")

headers= "propertytype, businestype, cityname, neighborhood, description, price, area\n"

f.write(headers)


for container in containers:
    property_type = container[propertytype]
    busines_type = container[businestype]
    city_name = container[cityname]
    neighborhood_location = container[neighborhood]
    description = container.div.a.img["alt"]

    price_container = container.findAll("span",{"itemprop":"price"})
    price =  price_container[0].text

    area_container = container.findAll("div",{"class":"m2"})
    area = area_container[0].p.span.text

    print("property_type: " + property_type)
    print("busines_type: " + busines_type)
    print("city_name: " + city_name)
    print("neighborhood_location: " + neighborhood_location)
    print("description: " + description)
    print("price: " + price)
    print("area: " + area)

f.write(property_type + "," + busines_type + "," + city_name + "," + neighborhood_location + "," + description.replace(",", "|") + "," + price + "," + area + "\n")

f.close()

1 Ответ

0 голосов
/ 09 июля 2019

Вам нужно будет поцарапать каждую страницу (вероятно, в цикле), сделайте это, выяснив, что нужно для вызова страницы 2, страницы 3 и т. Д. Вы можете попытаться выяснить это, посмотрев на источник страницы.код или с помощью инструментов разработчика из вашего браузера и просмотра сетевых вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...