Ajax 网页的数据接口,用 Python 爬起来还挺顺的,尤其是那种返回 JSON 格式的,直接拿来特方便。像我最近搞的一个项目,就是抓某个疾病下的SNP 和基因的关系数据,全程基本不用点页面,后台接口响应也快,配合requests和json模块,几行代码就搞定。
隐蔽的 HTTPS 接口,一般都是浏览器开发者工具里 Network 扒出来的。重点是找 XHR 求,有时候需要翻翻 Headers,或者调一下 Params 参数,嗯,动点脑子,常有惊喜。
数据拿到手,存成Excel也是轻轻松松,pandas直接一条to_excel
就完事。你甚至可以顺便加个datetime
的时间戳命名,方便版本管理。
完整代码也不复杂,就下面这样:
import requests
import pandas as pd
url = "https://example.com/api/data"
headers = {"User-Agent": "Mozilla/5.0"}
res = requests.get(url, headers=headers)
data = res.json()
df = pd.DataFrame(data)
df.to_excel("snp_gene_data.xlsx", index=False)
对了,如果你还没接触过这类操作,推荐你看看这些资料,挺系统的:Python 爬虫秘籍 和 Python 爬虫指南与源码合集。里面对Ajax 爬虫、反爬绕过这些点讲得还不错。
如果你刚好也在搞数据爬取,尤其是需要抓接口返回的 JSON 数据,真的可以试试这种方式,省时又省力,适合快速交付的项目。