为什么爬虫不会翻页,只能获取首页数据

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 设置请求头,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4644.87 Safari/537.36'
}

# 设置筛选条件
min_price = 200  # 最低价格(单位:万元)
max_price = 400  # 最高价格(单位:万元)
#regions = ['zhongshangongyuan']
regions = ['zsgy', 'caojiadu', 'dongwaitan', 'caohexi', 'xuhuibinjiang', 'xujiahui', 'huangpu', 'beiwaitan', 'xizangbeilu', 'nanjingxilu', 'jingansi']

# 创建空的DataFrame对象
column_names=['价格', '标题', '房屋信息', '所在小区', '所属地区']
pages = 3
# 爬取数据并存入DataFrame
for region in regions:
    for i in range(1, 3):
    # 构造URL
        url = f'https://sh.ke.com/ershoufang/{region}/pg{i}bp{min_price}ep{max_price}'
        response = requests.get(url, headers = headers)
        soup = BeautifulSoup(response.text, 'html.parser') #发送请求
        house_list = soup.find_all('div', class_='info clear')# 解析页面数据
        house_data = []
        for house in house_list:
            houseprice = house.find('div', class_='totalPrice').span.text #获取价格
            housetitle = house.find('div', class_='title').a.text
            houseinfo = house.find('div', class_='houseInfo').text
            houseposition = house.find('div', class_='positionInfo').a.text 
            house_data.append([houseprice,housetitle,houseinfo,houseposition,regions])
            data = pd.DataFrame(house_data)
            print (data)
            data.to_csv('d:/house_data.csv',encoding='utf_8_sig')

求大神解答Python问题,为什么数据只能获取到首页的数据,已经设置了循环

### 回答1: 好的,我可以回答这个问题。您可以使用 Python 的 requests 和 BeautifulSoup 库来编写爬虫程序,通过分析网页的 HTML 结构,获取需要的数据。具体的翻页操作可以使用循环来实现。需要注意的是,爬虫程序需要遵守网站的爬虫规则,不要过于频繁地访问同一个网站,以免被封禁 IP。 ### 回答2: 当然可以!下面是一个简单的Python爬虫翻页获取数据的例子: ```python import requests from bs4 import BeautifulSoup # 设置初始页码和总页数 start_page = 1 end_page = 10 # 循环请求每一页的数据 for page in range(start_page, end_page+1): url = f"你的目标网页地址?page={page}" # 发送请求获取页面内容 response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # 在页面中找到需要抓取的数据 data = soup.find_all('div', class_='data-class') # 假设数据在class为'data-class'的div中 # 遍历数据并进行处理 for item in data: # 提取数据的具体信息 title = item.find('h2').text content = item.find('p').text # 打印或保存数据 print(f"标题:{title}") print(f"内容:{content}") ``` 这个例子使用了`requests`库发送HTTP请求,以及`BeautifulSoup`库解析HTML内容。你需要根据实际需求修改`url`和解析页面的代码。总之,这个例子提供了一个简单的框架,你可以在此基础上根据自己的爬虫需求进一步扩展。 ### 回答3: 当然可以帮你编写一个Python爬虫用于翻页获取数据。下面是一个示例代码: ```python import requests from bs4 import BeautifulSoup def get_data(page): url = f'https://example.com/page/{page}' # 以example.com为例 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # 在这里处理网页的数据,例如提取需要的信息或者保存到文件等 # 示例中只是打印出标题 titles = soup.find_all('h2', class_='title') for title in titles: print(title.get_text()) else: print('获取数据失败') def main(): for page in range(1, 11): # 假设需要翻页获取10页数据 get_data(page) if __name__ == '__main__': main() ``` 这个示例代码使用了requests库来发送HTTP请求,使用了BeautifulSoup库来解析HTML页面。在`get_data`函数中,我们发送了GET请求来获取希望爬取的URL的页面内容,并使用BeautifulSoup解析得到的页面内容。之后,你可以在这个函数中处理所需的数据,例如提取特定的信息、保存到文件等等。在示例中,我们只是简单地打印了标题作为示例。 在`main`函数中,我们示范了从1到10的页面获取数据,你可以根据自己的需求修改该范围。 请注意,在实际使用中,你可能需要根据网站的不同规则和结构进行相应的调整。此外,要确保你根据目标网站的规则进行请求头的设置,以避免被反爬机制拦截。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值