Python Web Scrape Vanguard投资账户(登录)
我正在尝试自动从我的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
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废弃的轻量级库,但它的局限性要大得多。