我正在尝试使用 Jupyter Lab 中的 beautifulsoup 抓取本地站点,但它只有一页内容过多。当我尝试运行此代码时:
import requests
from bs4 import BeautifulSoup
import re
import string
login_url=('http://192.168.1.18/index.php?go=login')
login_success=('http://192.168.1.18/cashier')
payload={
'is_submitted': 1,
'username':'admin',
'password':'admin',
'submit':'Submit',
}
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64',
}
s = requests.session()
r = s.post(login_url,data=payload)
soup = BeautifulSoup(r.content,'html.parser')
req =s.get(login_success,headers=headers)
soups= BeautifulSoup(req.content,'html.parser')
print(soups.prettify())
它抛出这个错误:
<块引用>超出 IOPub 数据速率。
Jupyter 服务器将暂时停止发送输出
到客户端以避免崩溃。
要更改此限制,请设置配置变量
--ServerApp.iopub_data_rate_limit
。当前值:
ServerApp.iopub_data_rate_limit=1000000.0(字节/秒)
ServerApp.rate_limit_window=3.0(秒)
我已经试过了,不过IOPub data rate exceeded in Jupyter notebook (when viewing image)你可以查看它了解更多详情。
答案 0 :(得分:1)
请注意,这不是错误。您的代码运行良好。 Jupyter 试图通过一次显示太多内容来保护您免于崩溃浏览器。计算仍在下面进行,只是打印被抑制以帮助您。尝试打印前 1000 个字符或类似的内容。
至于评论中建议的问题是duplicate:确实需要针对 JupyterLab 3.0+ 进行调整;请注意,现在是 ServerApp
而不是 NotebookApp
:
jupyter lab --ServerApp.iopub_data_rate_limit=1.0e10
此外,如果您想将设置存储在文件中,它应该是 jupyter_server_config.py
而不是 jupyter_notebook_config.py
;您可以通过以下方式获得:
jupyter server --generate-config
然后更改 ServerApp.iopub_data_rate_limit
traitlet,例如:
c.ServerApp.iopub_data_rate_limit = 1000000
还有其他可能令人感兴趣的特征:
c.ServerApp.iopub_msg_rate_limit = 1000
c.ServerApp.rate_limit_window = 3