我正在抓取一个网站以获取一些详细信息。我正在向 url 发送一个 POST 请求,并且需要为此获取 JSON 响应数据,因为我需要的数据没有呈现到 HTML 中。
通常我只会使用 axios.post() 或替代方法,但其余 api 会阻止没有会话 ID 的请求,因此我必须使用无头浏览器。
那么,有没有办法拦截 REST APIs JSON 响应,就像您可以在开发人员工具的“网络”选项卡中检查它一样?
我正在抓取一个网站以获取一些详细信息。我正在向 url 发送一个 POST 请求,并且需要为此获取 JSON 响应数据,因为我需要的数据没有呈现到 HTML 中。
通常我只会使用 axios.post() 或替代方法,但其余 api 会阻止没有会话 ID 的请求,因此我必须使用无头浏览器。
那么,有没有办法拦截 REST APIs JSON 响应,就像您可以在开发人员工具的“网络”选项卡中检查它一样?
使用 axios,您有一个中间件管道,您可以使用它来拦截来自服务器的响应。这是在他们的自述文件中标记为“拦截器”的部分
https://github.com/axios/axios#interceptors
// Add a request interceptor
axios.interceptors.request.use(function (config) {
// Do something before request is sent
return config;
}, function (error) {
// Do something with request error
return Promise.reject(error);
});
// Add a response interceptor
axios.interceptors.response.use(function (response) {
// Do something with response data
return response;
}, function (error) {
// Do something with response error
return Promise.reject(error);
});