Python Web Scrape Vanguard投资账户(登录)

Python Web Scrape Vanguard投资账户(登录),python,mechanicalsoup,Python,Mechanicalsoup,我正在尝试自动从我的Vanguard投资账户中获取余额信息。我无法登录该帐户 我尝试了请求和机械组,但到目前为止我还没有弄明白这一点 import mechanicalsoup USERNAME = "myuser" PASSWORD = "mypass" OWNER="myemail" start_page = "https://personal.vanguard.com/us/hnwnesc/nesc/LoginPage" balance_page = "my balancepag

我正在尝试自动从我的Vanguard投资账户中获取余额信息。我无法登录该帐户

我尝试了请求和机械组,但到目前为止我还没有弄明白这一点

import mechanicalsoup



USERNAME = "myuser"
PASSWORD = "mypass"

OWNER="myemail"

start_page = "https://personal.vanguard.com/us/hnwnesc/nesc/LoginPage"
balance_page = "my balancepage"

r = mechanicalsoup.StatefulBrowser()
r.addheaders = [ 
("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv 1.0) %s" %
               (OWNER)),
]


r.open(start_page)
r.select_form('LoginForm')
r['USER'] = USERNAME
r = br.submit()

r.select_form('LoginForm')
r['PASSWORD'] = PASSWORD
r = br.submit()

r = br.open(balance_page)
我希望登录并被引导到余额页面,以便自动将余额刮到数据框中

编辑这里是一个使用Selenium的半工作更新

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("https://investor.vanguard.com/my-account/log-on")
user_button = driver.find_element_by_id('USER')
user_button.send_keys('UsErId')
password_button = driver.find_element_by_id('PASSWORD')
password_button.send_keys('P@$$W0rd')

button = driver.find_element_by_id('login')
button.click()

请解释您使用此代码得到的结果,以及为什么它不是您期望的结果。如果没有问题,我们无法回答;-)。网站是否使用JavaScript?@Matthieu Moy显然是一个更好的工具,因为它实际上使用JavaScript?在我的原始脚本中,它只返回登录页面的HTML(我想是吧?)。它实际上并没有让我登录,也找不到“用户”或“密码”表单。如果你需要JavaScript,那么是的,Selenium不仅仅更好,它是一个有效的解决方案。MechanicalSoup只是一个用于web废弃的轻量级库,但它的局限性要大得多。