我在制作配置文件生成器时遇到了这个问题。
这是我的代码:
print('Reading profile data')
with open('profile_data.json') as file:
data = json.load(file)
print('Profile data loaded')
task = int(raw_input('Task Number: '))
delay = int(raw_input('Delay (second): '))
x = 0
while x < task:
x = x + 1
randomn = random.randint(10000, 100000000)
email2, domain = data['email'].split('@')
email1 = email2+'+'+str(randomn)+'@'+domain
rando1 = random.randint(15, 40)
r = requests.post('https://forms.nvidia.eu/FP_20161221_GFN_Early_Access/process?isJs=1&returnAs=json', data={'First_Name': data['fname'], 'Last_Name': data['lname'], 'email': email1, 'Platform': 'PC', 'Age': rando1, 'region': 'en_us'})
e = requests.get('https://forms.nvidia.eu/FP_20161221_GFN_Early_Access/process?isJs=1&returnAs=json')
print(e)
succ = str(r.json()['status'])
print(succ)
if succ == 'SUCCESS':
print('Success! '+str(x)+' Emails signed up')
time.sleep(delay)
elif succ == 'VERIFY':
print('Task '+str(x)+' Failed due to captcha. Try again later, or use proxies')
quit()
else:
print('Task number '+str(x)+' failed. Trying again in '+str(delay)+' seconds.')
time.sleep(delay)
这是完整的日志,包括错误:
Reading profile data
Profile data loaded
Task Number: 30
Delay (second): 0
<Response [501]>
SUCCESS
Success! 1 Emails signed up
<Response [501]>
SUCCESS
Success! 2 Emails signed up
<Response [501]>
SUCCESS
Success! 3 Emails signed up
<Response [501]>
SUCCESS
Success! 4 Emails signed up
<Response [501]>
SUCCESS
Success! 5 Emails signed up
<Response [501]>
SUCCESS
Success! 6 Emails signed up
<Response [501]>
SUCCESS
Success! 7 Emails signed up
<Response [501]>
SUCCESS
Success! 8 Emails signed up
<Response [503]>
SUCCESS
Success! 9 Emails signed up
<Response [503]>
SUCCESS
Success! 10 Emails signed up
<Response [501]>
Traceback (most recent call last):
File "main.py", line 47, in <module>
succ = str(r.json()['status'])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/models.py", line 894, in json
return complexjson.loads(self.text, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/simplejson/__init__.py", line 516, in loads
return _default_decoder.decode(s)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Macs-MBP:GeforceNow Mac$
我试过浏览这个网站上的其他问题,但没有发现与我的问题相似的问题。您不能直接访问该链接来查看json数据(至少我不认为您可以..)。这可能是一个非常简单的问题,但无论如何我都会问(如果是的话,很抱歉)。非常感谢您的帮助,谢谢!:)
发布于 2018-07-03 03:29:06
看起来这一行有一个问题:
r = requests.post('https://forms.nvidia.eu/FP_20161221_GFN_Early_Access/process?isJs=1&returnAs=json', data={'First_Name': data['fname'], 'Last_Name': data['lname'], 'email': email1, 'Platform': 'PC', 'Age': rando1, 'region': 'en_us'})
According to the docs,当您将字典传递给post时,应该使用json
参数而不是data
参数。
我想这会有帮助的。很难说,因为在您的例子中,服务器返回错误(501 Not Implemented
和503 Service Unavailable
),但是代码表现得好像它们是成功的一样。成功的服务器事务应返回200范围内的代码。
https://stackoverflow.com/questions/50143937
复制相似问题