Celery タスク中に、AdWords の請求ページから csv ファイルをダウンロードする必要があります。また、実装の何が問題なのかわからないので、あなたの助けが必要です。
ログイン:
browser = mechanize.Browser()
browser.open('https://accounts.google.com/ServiceLogin')
browser.select_form(nr=0)
browser['Email'] = g_email
browser['Passwd'] = g_password
browser.submit()
browser.set_handle_robots(False)
billing_resp = browser.open('https://adwords.google.com/')
大丈夫です。今、請求ページにいます。次に、トークンと ID の結果ページを解析し、Chrome デバッガーでリクエスト ヘッダーとアクション URL を分析しました。次に、POST リクエストを作成して csv ファイルを受け取りたいと思います。応答ヘッダー (Chrome の場合) は次のとおりです。
content-disposition:attachment; filename="myclientcenter.csv.gz"
content-length:307479
content-type:application/x-gzip; charset=UTF-8
機械化あり:
data = {
'__u': effectiveUserId,
'__c': customerId,
'token': token,
}
browser.addheaders = [
('accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
('content-type', 'application/x-www-form-urlencoded'),
("accept-encoding", "gzip,deflate,sdch"),
('user-agent', "Mozilla/5.0"),
('referer', "https://adwords.google.com/mcm/Mcm?__u=8183865359&__c=3069937889"),
('origin', "https://adwords.google.com"),
]
browser.set_handle_refresh(True)
browser.set_debug_responses(True)
browser.set_debug_redirects(True)
browser.set_handle_referer(True)
browser.set_debug_http(True)
browser.set_handle_equiv(True)
browser.set_handle_gzip(True)
response = browser.open(
'https://adwords.google.com/mcm/file/ClientSummary/',
data='&'.join(['='.join(pair) for pair in data.items()]),
)
しかし!Content-Length ヘッダーは 0 で、この応答の Content-Disposition はありません。なんで?そして、それを機能させるにはどうすればよいですか?
リクエストを使用しようとしましたが、ログイン段階を通過することさえできませんでした...