首页 > 解决方案 > 在 Python 中进行网页抓取时循环网页(如谷歌搜索)

问题描述

我正在尝试抓取一个房地产网站。抓取代码运行良好,但我有一个问题:

当我在这个网站(看起来像谷歌)上进行研究时,它向我展示了很多页面。

我如何计算搜索找到了多少页而不是全部抓取

该网站是:https ://www.zapimoveis.com.br/aluguel/predio-inteiro/?transacao=Aluguel&tipoUnidade=Comercial,Pr%C3%A9dio%20Inteiro&tipo=Im%C3%B3vel%20usado

如您所见,当我进行简单搜索时,它会显示在顶部:

“10.177 prédios inteiros para alugar”,意思是“10.177 建筑物可供出租”。

在网站底部显示了一些找到的页面,我想把它们全部刮掉

这是我的代码,我必须在搜索的每一页下方一样进行抓取。它用于抓取诸如租金、平方米之类的数据:

import pandas as pd 
from bs4 import BeautifulSoup
import requests



headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}

url = requests.get("https://www.zapimoveis.com.br/aluguel/predio-inteiro/?transacao=Aluguel&tipoUnidade=Comercial,Pr%C3%A9dio%20Inteiro&tipo=Im%C3%B3vel%20usado", headers = headers)

if url.status_code == 200:
    soup = BeautifulSoup(url.content, "html.parser")
soup = BeautifulSoup(url.content, "html.parser")

Aluguel = [headline.get_text() for headline in soup.find_all("p", {"class": "simple-card__price"})]

AluguelFixed = list(map(int, [i.replace('.', '').replace("R$", "").replace("mês", "").replace("\n","").replace("/","").strip() for i in Aluguel]))

Metragem = [li.find("span", recursive=False).get_text() for li in soup.find_all("li", {"class": "feature__item" }) ]

MetragemAjustada = list(map(int, [i.replace('m²', '').strip() for i in Metragem if 'm²' in i]))

BancoDeDados = pd.DataFrame(data={"col1": MetragemAjustada, "col2": AluguelFixed})

BancoDeDados.to_csv("C:\\Users\\fernando.rezende\\OneDrive - ES Ltda\\Área de Trabalho/RobozapDataFrame.csv", sep=',',index=False) ```

标签: pythonweb-scrapingrequest

解决方案


推荐阅读