如何用Python爬取美国借贷平台Prosper的完整借贷数据
这个是官方给的API 地址,但是我在使用这个 api 的时候只会给我返回总计一百多条数据,剩下的数据就获取不到了。
我用的是“/listingsvc/v2/listings/?limit=25 ”这个接口,设置了 offset 也没有用,传过来的数据量很少;所以我想问问是不是我用的接口不对?还是说官方接口需要什么特别的权限?
希望论坛有 prosper 爬取经验的大神能解疑一下,谢谢啦
如何用Python爬取美国借贷平台Prosper的完整借贷数据
7 回复
为 PROSPER 提供数据的 Experian 不是被连锅端了么?
要爬取Prosper的完整借贷数据,你需要使用他们的公开API。Prosper提供了开发者API来获取借贷列表、详情等数据。以下是完整的代码示例:
import requests
import pandas as pd
from datetime import datetime
import time
class ProsperDataCrawler:
def __init__(self, api_key=None):
self.base_url = "https://api.prosper.com/v1"
self.headers = {
'Accept': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
if api_key:
self.headers['Authorization'] = f'Bearer {api_key}'
def get_listings(self, limit=500, offset=0):
"""获取借贷列表数据"""
url = f"{self.base_url}/listingsvc/v2/listings"
params = {
'limit': limit,
'offset': offset,
'biddable': 'true'
}
try:
response = requests.get(url, headers=self.headers, params=params)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
return None
def get_all_listings(self, max_pages=None):
"""获取所有借贷数据"""
all_listings = []
offset = 0
limit = 500
page_count = 0
while True:
print(f"正在获取第 {page_count + 1} 页数据...")
data = self.get_listings(limit=limit, offset=offset)
if not data or 'result' not in data:
break
listings = data['result']
if not listings:
break
all_listings.extend(listings)
# 检查是否还有更多数据
if len(listings) < limit:
break
offset += limit
page_count += 1
if max_pages and page_count >= max_pages:
break
# 避免请求过于频繁
time.sleep(1)
return all_listings
def save_to_csv(self, data, filename=None):
"""保存数据到CSV文件"""
if not filename:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"prosper_data_{timestamp}.csv"
df = pd.DataFrame(data)
df.to_csv(filename, index=False, encoding='utf-8')
print(f"数据已保存到: {filename}")
return filename
# 使用示例
if __name__ == "__main__":
# 如果需要认证,可以在这里添加API密钥
# crawler = ProsperDataCrawler(api_key="your_api_key_here")
crawler = ProsperDataCrawler()
# 获取数据(可以设置max_pages限制获取页数)
print("开始爬取Prosper借贷数据...")
listings_data = crawler.get_all_listings(max_pages=5) # 先测试5页
if listings_data:
print(f"成功获取 {len(listings_data)} 条借贷记录")
# 显示数据字段示例
if listings_data:
print("\n数据字段示例:")
print(list(listings_data[0].keys()))
# 保存数据
crawler.save_to_csv(listings_data)
else:
print("未能获取数据")
这个爬虫包含以下功能:
- API请求封装:
ProsperDataCrawler类封装了所有API调用逻辑 - 分页获取:
get_all_listings()方法自动处理分页,直到获取所有数据 - 数据保存:
save_to_csv()将数据保存为CSV格式 - 错误处理:基本的请求异常处理
重要说明:
- Prosper API可能需要认证才能访问完整数据
- 免费API通常有速率限制,代码中加了1秒延迟
- 获取的数据包含借贷金额、利率、信用等级、借款目的等字段
使用建议:
先测试少量数据(设置max_pages=2),确认能正常工作后再获取完整数据。如果遇到认证问题,可能需要注册Prosper开发者账号获取API密钥。
一句话总结:用他们的官方API配合requests库分页获取最靠谱。
我以前工作的公司…
那请问你对公司数据 api 接口这方面有了解吗?
所以说是取不到了么。。。
人家加了反爬虫啊,你真想爬的话,复盘一下你的流程,看看跟真实用户有哪些不一样的,尽量模拟呗
已经查明原因了,对外提供的开放接口只能获取到当天的数据,历史数据想要获取的话需要找 prosper 官方,签署一个协议之后才能获取

