gpt4 book ai didi

python - 如何使用python从Jotform下载数据?

转载 作者:行者123 更新时间:2023-12-04 16:21:07 25 4
gpt4 key购买 nike

我正在收集来自 jotform 的一些调查数据, 我的数据包括录音和音频的 URL 是

'https://www.jotform.com/widget-uploads/voiceRecorder/201374133/981221_121.wav'
如果我尝试使用 python 下载此文件,则会出现错误,因为用户只有在登录 Jotform 帐户时才能下载此文件。
如果它在浏览器中,登录很容易,我正在使用谷歌云并尝试从终端访问此文件。
我查了他们的 official API , 上次更新是在该 repo 上的 6 年前。
我正在尝试使用请求访问,我试过这个
import requests

s = requests.Session()
s.post('https://www.jotform.com/login/', data={'username': 'dummy_username', 'password': 'dummy_password'})

s.get( 'https://www.jotform.com/widget-uploads/voiceRecorder/201374133/981221_121.wav')
但它给了 <Response [404]>错误。
我检查用户名和密码字段:
enter image description here
我是否使用当前字段作为用户名和密码?
我也尝试使用 Mechanize ,但它给出了同样的错误:
import mechanize

import http.cookiejar as cookielib

browser = mechanize.Browser()

cookiejar = cookielib.LWPCookieJar()
browser.set_cookiejar( cookiejar )


browser.open('https://www.jotform.com/login/')
browser.select_form(nr = 0)

browser.form['username'] = 'dummy_username'
browser.form['password'] = 'dummy_password'
result = browser.submit()
browser.retrieve('https://www.jotform.com/widget-uploads/voiceRecorder/201374133/981221_121.wav')
如何使用请求模块下载音频文件?

最佳答案

实际上您没有正确使用表单数据。 nameinput元素用于标识它。在您的情况下,这些是 loPasswordloUsername .所以你想要做的是:

import requests 
sess = requests.Session()

payload = {
'loPassword': 'dummy_password',
'loUsername`' : 'dummy_username',
}
op = sess.post('https://www.jotform.com/login/',data=payload)

op.status_code
编辑:我还在网站上看到了 csrf token 。您必须先在网站上抓取 csrftoken,然后在您的 payload 中使用它。 .
from bs4 import BeautifulSoup
import requests
page = requests.get('https://www.jotform.com/login/')
soup = BeautifulSoup(page.text,'lxml')
csrf = soup.find('input',{'name':'csrf-token'})['value']
#now create the payload with this csrftoken
payload = {
'csrf-token':csrf,
'loUsername':'dummy_username',
'loPassword':'dummy_password',
}
sess = requests.Session()
op = sess.post('https://www.jotform.com/login/',data=payload)
op.status_code

关于python - 如何使用python从Jotform下载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63220299/

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