gpt4 book ai didi

python - 使用 Jupyter Notebook 从 Kaggle 提取泰坦尼克号训练数据时出现问题

转载 作者:行者123 更新时间:2023-12-01 01:49:38 26 4
gpt4 key购买 nike

我正在尝试使用 Jupyter Notebook 提取泰坦尼克号训练和测试数据。在下面找到我的代码片段。

payload = {
'action': 'login',
'username': os.environ.get("KAGGLE_USERNAME"),
'password': os.environ.get("KAGGLE_PASSWORD")
}

url = "https://www.kaggle.com/c/3136/download/train.csv"

with session() as c:
c.post('https://www.kaggle.com/account/login', data=payload)
response = c.get(url)
print(response.text)

执行此操作后,我收到 HTML 响应而不是训练数据。我也在 .env 文件中正确配置了 Kaggle 登录凭据。我在这里做错了什么吗?

最佳答案

您感兴趣的网站使用 AntiForgeryTokens 来防止跨源请求伪造等情况。您的登录未成功,这就是您的脚本无法运行的原因。 AF 代币带来了一个障碍,但凭借 Python 的魔力,没有什么是我们无法克服的。我创建了一个帐户,并使用以下脚本成功提取了您想要的 CSV 数据。注意:我必须解析 AntiForgeryToken,这样做的代码有点困惑,但它有效。

import requests

payload = {
'__RequestVerificationToken': '',
'username': 'OMITTED',
'password': 'OMITTED',
'rememberme': 'false'
}

loginURL = 'https://www.kaggle.com/account/login'
dataURL = "https://www.kaggle.com/c/3136/download/train.csv"

with requests.Session() as c:
response = c.get(loginURL).text
AFToken = response[response.index('antiForgeryToken')+19:response.index('isAnonymous: ')-12]
print("AntiForgeryToken={}".format(AFToken))
payload['__RequestVerificationToken']=AFToken
c.post(loginURL + "?isModal=true&returnUrl=/", data=payload)
response = c.get(dataURL)
print(response.text)

关于python - 使用 Jupyter Notebook 从 Kaggle 提取泰坦尼克号训练数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50863516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com