如何通过Chrome Network工具找URL并编写Python脚本爬取网页CSV预览数据?
Python脚本获取哥斯达黎加司法统计网站CSV数据
一、从Network截图提取核心请求信息
根据你提供的Chrome Network操作截图,下载CSV的关键请求细节如下:
- 请求方式:
POST - 目标接口:
https://pjenlinea3.poder-judicial.go.cr/estadisticasoij/exportarCSV - 表单参数:包含
anio(年份)、mes(月份)、tipoSistema(系统类型)等可配置参数,截图示例参数为anio=2024&mes=6&tipoSistema=PJE - 请求头:需模拟浏览器标识(
User-Agent),建议添加Referer指向原网页,部分网站会校验该字段
二、Python脚本实现
1. 安装依赖库
先安装requests库用于发送HTTP请求:
pip install requests
2. 完整代码示例
import requests # CSV导出接口地址 export_url = "https://pjenlinea3.poder-judicial.go.cr/estadisticasoij/exportarCSV" # 构造请求头,模拟Chrome浏览器 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36", "Referer": "https://pjenlinea3.poder-judicial.go.cr/estadisticasoij/", "Content-Type": "application/x-www-form-urlencoded" } # 表单参数,可根据需求修改年份、月份等 form_data = { "anio": "2024", "mes": "6", "tipoSistema": "PJE" # 若截图中存在csrf_token等动态参数,需从原网页HTML提取后添加至此 } # 发送POST请求获取CSV数据 response = requests.post(export_url, headers=headers, data=form_data) # 处理响应并保存文件 if response.status_code == 200: with open("judicial_statistics.csv", "w", encoding="utf-8") as file: file.write(response.text) print("CSV数据已成功保存为judicial_statistics.csv") else: print(f"请求失败,状态码:{response.status_code}")
三、关键注意事项
- 动态参数处理:如果网站存在
csrf_token等动态生成的参数,需先通过requests.get访问原网页,用BeautifulSoup解析HTML提取该参数后,加入form_data中。 - 会话维持:若网站需要登录或会话验证,需使用
requests.Session()建立会话,先访问主页获取Cookie,再发送POST请求。 - 编码适配:若保存的CSV出现乱码,可尝试将
encoding参数改为latin-1或其他对应编码格式。
内容的提问来源于stack exchange,提问作者0004
相关产品推荐
相关产品推荐

