如何以编程方式复制在 Chrome 开发人员工具中找到的请求?
How to programmatically replicate a request found in Chrome Developer Tools?
我正在 Venmo.com 查看我的余额,但他们一次只显示 3 个月,我想获得我的整个交易历史记录。
查看 Chrome 开发人员工具,在网络选项卡下,我可以看到对 https://api.venmo.com/v1/transaction-history?start_date=2017-01-01&end_date=2017-01-31
的请求 returns JSON.
我想以编程方式遍历时间并发出多个请求并汇总所有交易。但是,我不断收到 401 Unauthorized。
我最初的方法是使用 Node.js。我查看了请求中的cookie,将其复制到secret.txt
文件中,然后发送请求:
import fetch from 'node-fetch'
import fs from 'fs-promise'
async function main() {
try {
const cookie = await fs.readFile('secret.txt')
const options = {
headers: {
'Cookie': cookie,
},
}
try {
const response = await fetch('https://api.venmo.com/v1/transaction-history?start_date=2016-11-08&end_date=2017-02-08', options)
console.log(response)
} catch(e) {
console.error(e)
}
} catch(e) {
console.error('please put your cookie in a file called `secret.txt`')
return
}
}
那没用,我试过将所有 headers 复制过来:
const cookie = await fs.readFile('secret.txt')
const options = {
headers: {
'Accept-Encoding': 'gzip, deflate, sdch, br',
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Cookie': cookie,
'Host': 'api.venmo.com',
'Origin': 'https://venmo.com',
'Pragma': 'no-cache',
'Referer': 'https://venmo.com/account/settings/balance/statement?end=02-08-2017&start=11-08-2016',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36',
},
}
try {
const response = await fetch('https://api.venmo.com/v1/transaction-history?start_date=2016-11-08&end_date=2017-02-08', options)
console.log(response)
} catch(e) {
console.error(e)
}
这也没有用。
我什至尝试从网站的控制台发出请求并收到 401:
fetch('https://api.venmo.com/v1/transaction-history?start_date=2016-11-08&end_date=2017-02-08', {credentials: 'same-origin'}).then(console.log)
所以我的问题是:我在 Chrome 开发者工具中看到一个网络请求。我如何以编程方式提出相同的请求?最好在 Node.js 或 Python 中,这样我就可以编写一个自动脚本。
在 Chrome 开发人员工具的“网络”选项卡中,右键单击请求并单击“复制”>“复制为 cURL (bash)”。然后,您可以直接使用 curl 命令编写脚本,或者使用 https://curlconverter.com/ 将 cURL 命令转换为 Python、JavaScript、PHP、R、Go、Rust , Elixir, Java, MATLAB, Dart 或 JSON.
我正在 Venmo.com 查看我的余额,但他们一次只显示 3 个月,我想获得我的整个交易历史记录。
查看 Chrome 开发人员工具,在网络选项卡下,我可以看到对 https://api.venmo.com/v1/transaction-history?start_date=2017-01-01&end_date=2017-01-31
的请求 returns JSON.
我想以编程方式遍历时间并发出多个请求并汇总所有交易。但是,我不断收到 401 Unauthorized。
我最初的方法是使用 Node.js。我查看了请求中的cookie,将其复制到secret.txt
文件中,然后发送请求:
import fetch from 'node-fetch'
import fs from 'fs-promise'
async function main() {
try {
const cookie = await fs.readFile('secret.txt')
const options = {
headers: {
'Cookie': cookie,
},
}
try {
const response = await fetch('https://api.venmo.com/v1/transaction-history?start_date=2016-11-08&end_date=2017-02-08', options)
console.log(response)
} catch(e) {
console.error(e)
}
} catch(e) {
console.error('please put your cookie in a file called `secret.txt`')
return
}
}
那没用,我试过将所有 headers 复制过来:
const cookie = await fs.readFile('secret.txt')
const options = {
headers: {
'Accept-Encoding': 'gzip, deflate, sdch, br',
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Cookie': cookie,
'Host': 'api.venmo.com',
'Origin': 'https://venmo.com',
'Pragma': 'no-cache',
'Referer': 'https://venmo.com/account/settings/balance/statement?end=02-08-2017&start=11-08-2016',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36',
},
}
try {
const response = await fetch('https://api.venmo.com/v1/transaction-history?start_date=2016-11-08&end_date=2017-02-08', options)
console.log(response)
} catch(e) {
console.error(e)
}
这也没有用。
我什至尝试从网站的控制台发出请求并收到 401:
fetch('https://api.venmo.com/v1/transaction-history?start_date=2016-11-08&end_date=2017-02-08', {credentials: 'same-origin'}).then(console.log)
所以我的问题是:我在 Chrome 开发者工具中看到一个网络请求。我如何以编程方式提出相同的请求?最好在 Node.js 或 Python 中,这样我就可以编写一个自动脚本。
在 Chrome 开发人员工具的“网络”选项卡中,右键单击请求并单击“复制”>“复制为 cURL (bash)”。然后,您可以直接使用 curl 命令编写脚本,或者使用 https://curlconverter.com/ 将 cURL 命令转换为 Python、JavaScript、PHP、R、Go、Rust , Elixir, Java, MATLAB, Dart 或 JSON.