現在、
本『Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-』
に書かれている下記のAmazon注文履歴スクレイピングの勉強をしております。
これを元に、画像のように注文履歴の表示画面において過去6ヶ月間から2018年へ変更するように書き換えたいのですが、どのようにすれば良いのでしょうか?
恐らくログイン後に、ボタンを押すようにすれば良いとは思うのですが、書き方がわかりません。
よろしくお願いします。
python3
1import sys 2import os 3import re; re._pattern_type = re.Pattern 4from robobrowser import RoboBrowser 5import csv 6AMAZON_EMAIL = os.environ['AMAZON_EMAIL'] 7AMAZON_PASSWORD = os.environ['AMAZON_PASSWORD'] 8 9# RoboBrowserオブジェクトを作成する。 10browser = RoboBrowser( 11 parser='html.parser', # Beautiful Soupで使用するパーサーを指定する。 12 # Cookieが使用できないと表示されてログインできない問題を回避するため、 13 # 通常のブラウザーのUser-Agent(ここではFirefoxのもの)を使う。 14 user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Firefox/45.0') 15 16 17def main(): 18 # 注文履歴のページを開く。 19 print('Navigating...', file=sys.stderr) 20 browser.open('https://www.amazon.co.jp/gp/css/order-history') 21 print(browser.parsed.title.string) 22 # サインインページにリダイレクトされていることを確認する。 23 assert 'Amazonログイン' in browser.parsed.title.string 24 25 # name="signIn" というサインインフォームを埋める。 26 # フォームのname属性の値はブラウザーの開発者ツールで確認できる。 27 form = browser.get_form(attrs={'name': 'signIn'}) 28 form['email'] = AMAZON_EMAIL # name="email" という入力ボックスを埋める。 29 form['password'] = AMAZON_PASSWORD # name="password" という入力ボックスを埋める。 30 31 # フォームを送信する。正常にログインするにはRefererヘッダーとAccept-Languageヘッダーが必要。 32 print('Signing in...', file=sys.stderr) 33 browser.submit_form(form, headers={ 34 'Referer': browser.url, 35 'Accept-Language': 'ja,en-US;q=0.7,en;q=0.3', 36 }) 37 38 # ログインに失敗する場合は、次の行のコメントを外してHTMLのソースを確認すると良い。 39 # print(browser.parsed.prettify()) 40 # ページャーをたどる。 41 while True: 42 assert '注文履歴' in browser.parsed.title.string # 注文履歴画面が表示されていることを確認する。 43 44 print_order_history() # 注文履歴を表示する。 45 46 link_to_next = browser.get_link('次へ') # 「次へ」というテキストを持つリンクを取得する。 47 if not link_to_next: 48 break # 「次へ」のリンクがない場合はループを抜けて終了する。 49 50 print('Following link to next page...', file=sys.stderr) 51 browser.follow_link(link_to_next) # 「次へ」というリンクをたどる。 52 53def print_order_history(): 54#質問外なので省略

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/19 02:33