现在,我一直试图用python访问雅虎,我不确定为什么我似乎无法登录。
我的目标流程是
转到雅虎->,转到登录->,输入用户名->,按提交按钮->,输入密码->,按提交按钮。
请让我知道我在哪里犯了错,为什么代码看起来不起作用。任何登录到yahoo的替代方案,如果不是基于selenium的,都将不胜感激,并且仍然使用python。
"""Example app to login to Yahoo using the StatefulBrowser class."""
from __future__ import print_function
import argparse
import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser(
soup_config={'features': 'lxml'},
raise_on_404=True,
user_agent='MyBot/0.1: mysite.example.com/bot_info',
)
# Uncomment for a more verbose output:
browser.set_verbose(2)
browser.session.cookies.keys()
browser.open("https://login.yahoo.com/config/login?.src=fpctx&.intl=ca&.lang=en-CA&.done=https%3A%2F%2Fca.yahoo.com")
form1 = browser.select_form(nr=0)
browser['username'] = 'beta@gmail.com'
response = browser.submit_selected()
print(response.content)
browser.select_form(nr=0)
browser['passwd'] = 'badPass'
response = browser.submit_selected()
print(response)
page = browser.get_current_page()发布于 2019-01-29 07:27:55
快速浏览一下登录页面源代码就会发现它非常广泛地使用了JavaScript。表单提交似乎很可能是由JavaScript处理的,尽管我无法指出确切的代码行来证明这一点。
因为MechanicalSoup不支持JavaScript,所以您可能需要找到一个支持它的替代工具,比如Selenium。有关详细信息,请参阅this FAQ。
https://stackoverflow.com/questions/54410983
复制相似问题