如何使用python下载需要登录的.csv文件?

2024-10-04 05:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试登录以从此url下载.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信息。任何帮助都将不胜感激!在


Tags: csvhttpscomauthurlwwwusernameexport
1条回答
网友
1楼 · 发布于 2024-10-04 05:23:06

你的问题是你试图把登录页面当作一个API调用,而这些是不同的动物。您需要让python(selenium可以这样做)实际填充实际的输入字段并解析结果。这看起来很麻烦,任何对网页的更改都会破坏这一点。在

看起来他们的软件有一个API,你应该看看这个:

https://developer.underarmour.com/

单击从How to press login button in selenium python 3中提取硒的按钮

xpath:

elem = driver.find_element_by_xpath("//input[@class='userid-button'][@type='submit']")
elem.click()

css:

^{pr2}$

相关问题 更多 >