0

残高はVenmo.comですが、一度に3ヶ月しか表示されないため、取引履歴全体を取得したいと考えています。Chromeデベロッパーツールにあるリクエストをプログラムで複製するにはどうすればよいですか?

Chromeデベロッパーツールを見ると、[ネットワーク]タブの下に、https://api.venmo.com/v1/transaction-history?start_date=2017-01-01&end_date=2017-01-31にJSONを返すリクエストが表示されます。

プログラム的に時間をかけて繰り返し、いくつかのリクエストを行い、すべてのトランザクションを集約したいと思います。しかし、私は401 Unauthorizedを得続けている。

私の初期のアプローチはNode.jsを使用していました。私は、リクエストにクッキーを見て、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 
    } 
} 

私はオーバーヘッダのすべてのコピーしようとしたん:

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で、私は自動化されたスクリプトを書くことができます。

答えて

5

Chromeデベロッパーツールの[ネットワーク]タブで、リクエストを右クリックして[コピー]> [cURL(コマンド)としてコピー]をクリックします。 curlコマンドを直接使用してスクリプトを作成するか、https://curl.trillworks.com/を使用してcURLコマンドをPython、Node.JSまたはPHPに変換することができます。

+0

ああ。じぶんの。神。私が望むことができる最高の可能な答え:) – Chet

関連する問題