You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Beautiful Soup爬取网页返回None的问题求助

问题原因

该网站的会员表格采用动态加载机制,直接通过requests.get()获取的初始页面源码中并不包含目标表格内容。表格数据是页面加载完成后,通过AJAX异步请求从后端接口获取的,因此BeautifulSoup无法在初始HTML中找到对应表格元素,返回None。

解决方案

通过浏览器抓包找到加载会员数据的API接口,直接请求该接口获取结构化数据,再整理为表格。以下是可行代码:

import requests
import pandas as pd

# 抓包得到的会员数据接口地址
api_url = "https://bni-india.in/API/Chapter/GetChapterMemberList"
# 请求头,模拟前端AJAX请求
headers = {
    "Content-Type": "application/json",
    "X-Requested-With": "XMLHttpRequest"
}
# 请求参数,对应目标章节的ID
payload = {
    "chapterId": "P+IWaeuOSfF3Mxm03FLSzA==",
    "page": 1,
    "pageSize": 100  # 可调整数值获取更多数据,若数据分页则循环修改page参数
}

# 发送POST请求获取数据
response = requests.post(api_url, json=payload, headers=headers)
data = response.json()

# 转换为DataFrame并输出
member_df = pd.DataFrame(data['data'])
print(member_df.head())
# 保存为本地文件
member_df.to_csv('bni_alpha_members.csv', index=False)
操作提示
  • 抓包步骤:打开浏览器开发者工具(快捷键F12),切换至「网络」面板,刷新页面后筛选「XHR」类型请求,找到返回会员列表的接口,复制其URL、请求头及参数。
  • 若会员数据分页,可通过循环修改payload中的page参数,依次请求各页数据后合并成完整表格。

内容的提问来源于stack exchange,提问作者user20658595

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:01:17