如何用Python不依赖Selenium爬取页面源码无有效HTML的网站
解决方案:直接请求后端API获取数据
该网站是基于Vue的单页应用,页面内容由JavaScript动态渲染,因此用requests直接获取的仅为页面框架,无法看到实际数据。无需使用Selenium,可直接抓取后端API接口获取目标数据:
1. 定位数据接口
通过浏览器开发者工具(F12)的Network标签页分析页面请求,可发现目标数据来自POST接口:https://www.cea.gov.sg/aceas/api/public-register/sales/search
2. 构造请求参数与头部
该接口需以JSON格式传递查询参数,同时携带必要请求头:
3. 实现代码
import requests api_url = "https://www.cea.gov.sg/aceas/api/public-register/sales/search" request_headers = { "Content-Type": "application/json", "Accept": "application/json, text/plain, */*" } request_payload = { "page": 1, "pageSize": 10, "sortAscFlag": True, "sort": "name", "registrationNumber": "R" } response = requests.post(api_url, json=request_payload, headers=request_headers) result = response.json() # 打印返回的JSON数据,可根据需求提取字段 print(result)
补充说明
- 接口返回JSON格式数据,直接解析即可获取所需信息,无需处理HTML结构
- 翻页仅需修改
request_payload中的page参数 - 树莓派环境仅需安装
requests库即可运行,无需依赖Selenium
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

