def fetch(config, fileobj):
user, password = config
# use the user's regular firefox profile instead of a fresh temporary one.
# this is to avoid getting fingerprinted as a new device which generates
# annoying emails and asks for additional info. luckily this profile is
# cloned into a temporary directory, so we can change preferences without
# affecting the original copy.
profile = FirefoxProfile(_firefox_default_profile())
# disable a json viewer that's enabled by default in firefox 53+.
profile.set_preference('devtools.jsonview.enabled', False)
driver = Firefox(profile)
driver.get('https://venmo.com/account/sign-in/')
user_elem = driver.find_element_by_name('phoneEmailUsername')
user_elem.clear()
user_elem.send_keys(user.value)
password_elem = driver.find_element_by_name('password')
password_elem.clear()
password_elem.send_keys(password.value)
password_elem.send_keys(Keys.RETURN)
WebDriverWait(driver, 15).until(title_contains('Welcome'))
params = '?start_date=2009-01-01&end_date={}-01-01'.format(datetime.now().year + 1)
url = 'https://api.venmo.com/v1/transaction-history' + params
driver.get(url)
# validate json and raise ValueError on failure.
pre = driver.find_element_by_tag_name('pre').text
json.loads(pre)
driver.quit()
fileobj.write('{}\n'.format(user.value))
fileobj.write(pre)
评论列表
文章目录