2015-04-29 46 views
-1

我是新來的網絡抓取。我試圖登錄到網站使用下面的代碼:使用請求包無法登錄網站

urlLogin = 'https://b*********.****n.dk/Authorization/LogOn' 
urlData = 'https://b*********.****n.dk//Search/Index' 
payload = { 
'UserName':'{{username}}', 
'Password':'{{qb1Iw*xw3Xs>}}' 
} 

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

通過使用該代碼:

with requests.Session() as s: 
p = s.post(urlLogin, data=payload) 
print(p.text) 

產量爲:

[ArgumentException]: The parameters dictionary contains a null entry for parameter &#39;remmemberMe&#39; of non-nullable type &#39;System.Boolean&#39; for method &#39;System.Web.Mvc.ActionResult LogOn(System.String, System.String, Boolean)&#39; in &#39;SalesOptimizer.Controllers.AuthorizationController&#39;. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. 
Parameter name: parameters 

這意味着我不得不多一個變量添加到有效載荷。代碼變爲:

payload = { 
      'username':"Akademikernes", 
      'password':"qb1Iw*xw3Xs>", 
      'remmemberMe': True 
      } 

with requests.Session() as s: 
      p = s.post(urlLogin, data=payload) 

這是答案(新的問題是,輸出給出一個文本的密碼不正確會不會是密碼中包含這些字符* >我可以通過網絡登錄。?與此用戶名和密碼。)