我是网络抓取的新手。我正在尝试使用以下代码登录网站:
urlLogin = 'https://b*********.****n.dk/Authorization/LogOn'
urlData = 'https://b*********.****n.dk//Search/Index'
payload = {
'UserName':'{{username}}',
'Password':'{{a_password}}'
}
with requests.Session() as s:
s.post(urlLogin, data=payload)
r = s.get(urlData)
我收到以下错误:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 372, in _make_request
httplib_response = conn.getresponse(buffering=True)
TypeError: getresponse() got an unexpected keyword argument 'buffering'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 544, in urlopen
body=body, headers=headers)
File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 374, in _make_request
httplib_response = conn.getresponse()
File "C:\Python34\lib\http\client.py", line 1162, in getresponse
raise ResponseNotReady(self.__state)
http.client.ResponseNotReady: Request-sent
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\requests\adapters.py", line 370, in send
timeout=timeout
File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 597, in urlopen
_stacktrace=sys.exc_info()[2])
File "C:\Python34\lib\site-packages\requests\packages\urllib3\util\retry.py", line 245, in increment
raise six.reraise(type(error), error, _stacktrace)
File "C:\Python34\lib\site-packages\requests\packages\urllib3\packages\six.py", line 309, in reraise
raise value.with_traceback(tb)
File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 544, in urlopen
body=body, headers=headers)
File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 374, in _make_request
httplib_response = conn.getresponse()
File "C:\Python34\lib\http\client.py", line 1162, in getresponse
raise ResponseNotReady(self.__state)
requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', ResponseNotReady('Request-sent',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Dimitrios/Documents/Dimitris_general/Python/WindCompaniesProject/EnterData.py", line 16, in <module>
r = s.get(urlData)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 477, in get
return self.request('GET', url, **kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 465, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 594, in send
history = [resp for resp in gen] if allow_redirects else []
File "C:\Python34\lib\site-packages\requests\sessions.py", line 594, in <listcomp>
history = [resp for resp in gen] if allow_redirects else []
File "C:\Python34\lib\site-packages\requests\sessions.py", line 196, in resolve_redirects
**adapter_kwargs
File "C:\Python34\lib\site-packages\requests\sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "C:\Python34\lib\site-packages\requests\adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ResponseNotReady('Request-sent',))
可能是什么原因?许多教程都提出了这样做的方法,似乎它在我的案例中并不起作用。
答案 0 :(得分:0)
使用此代码:
with requests.Session() as s:
p = s.post(urlLogin, data=payload)
print(p.text)
输出是:
[ArgumentException]: The parameters dictionary contains a null entry for parameter 'remmemberMe' of non-nullable type 'System.Boolean' for method 'System.Web.Mvc.ActionResult LogOn(System.String, System.String, Boolean)' in 'SalesOptimizer.Controllers.AuthorizationController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters
这意味着我不得不再向负载添加一个变量。代码变为:
payload = {
'username':"a_username",
'password':"a_password",
'remmemberMe': True
}
with requests.Session() as s:
p = s.post(urlLogin, data=payload)
这就是答案。(新问题是输出提供密码不正确的文本。密码是否包含这些字符* >
?我可以使用此用户名通过网络登录密码。)