我正在尝试登录并从此网址下载 .csv
文件
https://www.mapmyfitness.com/workout/export/csv 。该 url 将页面重定向到此 url:
https://www.mapmyfitness.com/auth/login?next=/workout/export/csv
我尝试实现以下代码,但出现此错误:
username = 'email'
password = 'password'
url1 = 'https://www.mapmyfitness.com/workout/export/csv'
url2 = 'https://www.mapmyfitness.com/auth/login?next=/workout/export/csv'
payload = {'email': username, 'password': password}
requests.post(url2, data=payload)
with requests.Session() as s:
p = s.post(url2, data=payload)
print(p.text)
r = s.get(url2)
# print(r.text)
{"error":"validation/username,password","error_description":"Post body failed validation: {\"username\":\"validation/string\",\"password\":\"validation/string\"}"}
我已经尝试了很多其他的事情,但这是我最接近的页面,而不仅仅是在登录页面上吐出 HTML 信息。任何帮助将不胜感激!
最佳答案
您的问题是您试图将登录页面视为 API 调用,而这些是不同的动物。您需要让 python(selenium 可以做到这一点)实际填写实际的输入字段并解析结果。这看起来很麻烦,并且对网页的任何更改都会破坏这一点。
看起来他们的软件有一个 API,你实际上应该看看这个:
https://developer.underarmour.com/
单击一个按钮,并从 How to press login button in selenium python 3 中提取 Selenium
x路径:
elem = driver.find_element_by_xpath("//input[@class='userid-button'][@type='submit']")
elem.click()
CSS:
elem = driver.find_element_by_css_selector("input.userid-button[type=submit]")
elem.click()
关于python - 如何使用 python 下载需要登录的 .csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53340380/