通过网页循环到Webscrape数据



我正在尝试通过zillow页面循环并提取数据。我知道每次迭代后正在使用新的页码更新URL,但是提取的数据似乎仍在第1页上。

import selenium
from selenium import webdriver
import requests
from bs4 import BeautifulSoup
import pandas as pd
next_page='https://www.zillow.com/romeo-mi-48065/real-estate-agent-reviews/'
num_data1=pd.DataFrame(columns=['name','number'])
browser=webdriver.Chrome()
browser.get('https://www.zillow.com/romeo-mi-48065/real-estate-agent-reviews/')
while True:
    page=requests.get(next_page)
    contents=page.content
    soup = BeautifulSoup(contents, 'html.parser')
    number_p=soup.find_all('p', attrs={'class':'ldb-phone-number'},text=True)
    name_p=soup.find_all('p', attrs={'class':'ldb-contact-name'},text=True)
    number_p=pd.DataFrame(number_p,columns=['number'])
    name_p=pd.DataFrame(name_p,columns=['name'])
    num_data=number_p['number'].apply(lambda x: x.text.strip())
    nam_data=name_p['name'].apply(lambda x: x.text.strip())
    number_df=pd.DataFrame(num_data,columns=['number'])
    name_df=pd.DataFrame(nam_data,columns=['name'])
    num_data0=pd.concat([number_df,name_df],axis=1)
    num_data1=num_data1.append(num_data0)
        try:
            button=browser.find_element_by_css_selector('.zsg-pagination>li.zsg-pagination-next>a').click()
            next_page=str(browser.current_url)
        except IndexError:
            break

page = browser.page_source

替换 page=requests.get(next_page)

基本上发生的是您要在Chrome中的下一页,但是随后尝试加载该页面的URL,该请求将Zillow通过Zillow重定向回到第一页(可能是因为它没有Cookie或适当的请求标题(。

为什么不使您的生活更轻松,使用Zillow API而不是刮擦?(您甚至有权刮擦他们的网站吗?(

最新更新