如何用Python requests模块获取lei-registrations.in的Fetch/XHR响应JSON
解决方案:使用requests直接调用搜索API
步骤1:分析网站的搜索请求
打开浏览器开发者工具(F12)切换到Network标签,搜索目标公司名后,观察Fetch/XHR请求可发现:搜索是一个POST请求,目标URL为https://lei-registrations.in/lei-search,请求参数包含search_term,同时需要携带页面的CSRF Token(网站基于Django构建,需该Token验证请求合法性)。
步骤2:编写requests代码实现搜索
import requests from bs4 import BeautifulSoup # 基础配置 base_url = "https://lei-registrations.in/" search_url = f"{base_url}lei-search" # 1. 访问首页获取CSRF Token session = requests.Session() home_response = session.get(base_url) soup = BeautifulSoup(home_response.text, "html.parser") csrf_token = soup.find("input", {"name": "csrfmiddlewaretoken"})["value"] # 2. 构造搜索参数 search_term = "ditech process solutions private limited" payload = { "csrfmiddlewaretoken": csrf_token, "search_term": search_term } # 3. 发送AJAX请求获取结果 headers = { "Referer": base_url, "X-Requested-With": "XMLHttpRequest" } search_response = session.post(search_url, data=payload, headers=headers) # 4. 解析响应 if search_response.status_code == 200: result_json = search_response.json() print(result_json) else: print(f"请求失败,状态码:{search_response.status_code}")
原Selenium代码的问题说明
你的Selenium代码存在以下问题:
driver =后换行导致语法错误,无法正常初始化浏览器实例- 网站搜索为异步AJAX请求,调用
searchBox.submit()后页面不会刷新,直接quit浏览器无法捕获响应数据 - 即便添加等待,Selenium也需定位异步加载的结果元素才能获取数据,效率远低于直接调用API
依赖安装
确保已安装所需库:
pip install requests beautifulsoup4
内容的提问来源于stack exchange,提问作者Yug
相关产品推荐
相关产品推荐

