1

我試圖登錄到我的大學網站,然後取消它的數據,(只是歡迎頁面的源代碼暫時)但im這讓這個以下回溯..TypeError:類型'響應'的對象沒有len()[BeautifulSoup]

Traceback (most recent call last): 
    File "C:/Users/HUNTER/PycharmProjects/Encryption/erp.py", line 16, in <module> 
    soup = BeautifulSoup(opens, 'lxml') 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35-32\lib\site-packages\bs4\__init__.py", line 192, in __init__ 
    elif len(markup) <= 256 and (
    TypeError: object of type 'Response' has no len() 

這裏是代碼..

import requests 
from requests import session 
from bs4 import BeautifulSoup 

url = 'http://erp.college_name.edu/' 

r = requests.session() 
data = { 

    'tbUserName': 'username', 
    'tbPassword': 'password' 

} 

opens = r.post(url=url, data=data) 
soup = BeautifulSoup(opens, 'lxml') 
print(soup) 

的幫助真的是appriciated ..

UPDATE

SO,這樣做,
soup = BeautifulSoup(opens.text, 'lxml')
print(soup)

給了我這個..

C:\Users\HUNTER\AppData\Local\Programs\Python\Python35-32\python.exe  
    C:/Users/HUNTER/PycharmProjects/Encryption/erp.py 
    Traceback (most recent call last): 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35-32\lib\site- 
    packages\requests\packages\urllib3\response.py", line 232, in  
    _error_catcher 
    yield 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\site-packages\requests\packages\urllib3\response.py", line 314, in 
    read 
    data = self._fp.read(amt) 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\http\client.py", line 448, in read 
    n = self.readinto(b) 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\http\client.py", line 488, in readinto 
    n = self.fp.readinto(b) 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\socket.py", line 575, in readinto 
    return self._sock.recv_into(b) 

    ConnectionResetError: [WinError 10054] An existing connection was  
    forcibly closed by the remote host 


    During handling of the above exception, another exception occurred: 

     Traceback (most recent call last): 
     File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35-  
     32\lib\site-packages\requests\models.py", line 676, in generate 
    for chunk in self.raw.stream(chunk_size, decode_content=True): 
     File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
     32\lib\site-packages\requests\packages\urllib3\response.py", line 357, 
    in stream 
    data = self.read(amt=amt, decode_content=decode_content) 
     File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 

     32\lib\site-packages\requests\packages\urllib3\response.py", line 
     324, in read 
    flush_decoder = True 
     File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
     32\lib\contextlib.py", line 77, in __exit__ 
self.gen.throw(type, value, traceback) 
     File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35-  
    32\lib\site- 
    packages\requests\packages\urllib3\response.py", line 250, in 
    _error_catcher 
    raise ProtocolError('Connection broken: %r' % e, e) 
    requests.packages.urllib3.exceptions.ProtocolError: ("Connection broken:  
ConnectionResetError(10054, 'An existing connection was forcibly closed by  
    the remote host', None, 10054, None)", ConnectionResetError(10054, 'An 
    existing connection was forcibly closed by the remote host', None,  
    10054, None)) 

    During handling of the above exception, another exception occurred: 

    Traceback (most recent call last): 
    File "C:/Users/HUNTER/PycharmProjects/Encryption/erp.py", line 15, in <module> 
opens = r.post(url=url, data=data) 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\site-packages\requests\sessions.py", line 522, in post 
return self.request('POST', url, data=data, json=json, **kwargs) 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
32\lib\site-packages\requests\sessions.py", line 475, in request 
resp = self.send(prep, **send_kwargs) 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\site-packages\requests\sessions.py", line 628, in send 
r.content 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35- 
    32\lib\site-packages\requests\models.py", line 755, in content 
self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or 

bytes() 
    File "C:\Users\HUNTER\AppData\Local\Programs\Python\Python35-32\lib\site- 
    packages\requests\models.py", line 679, in generate 
raise ChunkedEncodingError(e) 

    requests.exceptions.ChunkedEncodingError: ("Connection broken: 

ConnectionResetError(10054, 'An existing connection was forcibly closed by  

the  
remote host', None, 10054, None)", ConnectionResetError(10054, 'An existing 
connection was forcibly closed by the remote host', None, 10054, None)) 

    Process finished with exit code 1 

回答

3

BeautifulSoup需要返回的內容,而不是完整的響應。嘗試使用opens.text

opens = r.post(url=url, data=data) 
soup = BeautifulSoup(opens.text, 'lxml') 
print(soup) 
0

我以前的錯誤,我有答案。 導致該錯誤的原因很多。 這可能是由於連接的兩端在保持連接期間不同意連接超時或不連接引起的。

要詳細檢查問題,可以使用Wireshark。

或者您可以重新請求或重新連接。

+0

是啊它作爲網絡問題..謝謝 –