python - 如何修复“TypeError:描述列表中的每个项目都必须是 AccessDescription”
问题描述
我是一个新手 python 用户,试图通过 Beautiful Soup 解析网站的数据。然而,每当我运行一个获取请求时,我都会收到这个特定的错误。
我下载了 html 文件并用它来编写处理,但我无法让在线更新工作。我是按照这个 youtube 指南去的:https ://www.youtube.com/watch?v=ng2o98k983k
import requests
from bs4 import BeautifulSoup
source=requests.get('https://rd2l.gg/seasons/bLikBZrRH/divisions/HJSzO_xoM/teams').text
soup=BeautifulSoup(source,'lxml')
print(r.text)
runfile('C:/Users/Akono/Documents/RD2L Season 18/RD2L DB/scrape and csv.py', wdir='C:/Users/Akono/Documents/RD2L Season 18/RD2L DB')
Traceback (most recent call last):
File "<ipython-input-225-654df9a749a6>", line 1, in <module>
runfile('C:/Users/Akono/Documents/RD2L Season 18/RD2L DB/scrape and csv.py', wdir='C:/Users/Akono/Documents/RD2L Season 18/RD2L DB')
File "C:\Users\Akono\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:\Users\Akono\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Akono/Documents/RD2L Season 18/RD2L DB/scrape and csv.py", line 27, in <module>
source=requests.get('https://rd2l.gg/seasons/bLikBZrRH/divisions/HJSzO_xoM/teams').text
File "C:\Users\Akono\Anaconda3\lib\site-packages\requests\api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "C:\Users\Akono\Anaconda3\lib\site-packages\requests\api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Akono\Anaconda3\lib\site-packages\requests\sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Akono\Anaconda3\lib\site-packages\requests\sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Akono\Anaconda3\lib\site-packages\requests\adapters.py", line 449, in send
timeout=timeout
File "C:\Users\Akono\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
chunked=chunked)
File "C:\Users\Akono\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 343, in _make_request
self._validate_conn(conn)
File "C:\Users\Akono\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 839, in _validate_conn
conn.connect()
File "C:\Users\Akono\Anaconda3\lib\site-packages\urllib3\connection.py", line 355, in connect
cert = self.sock.getpeercert()
File "C:\Users\Akono\Anaconda3\lib\site-packages\urllib3\contrib\pyopenssl.py", line 363, in getpeercert
'subjectAltName': get_subj_alt_name(x509)
File "C:\Users\Akono\Anaconda3\lib\site-packages\urllib3\contrib\pyopenssl.py", line 213, in get_subj_alt_name
ext = cert.extensions.get_extension_for_class(
File "C:\Users\Akono\AppData\Roaming\Python\Python37\site-packages\cryptography\utils.py", line 170, in inner
result = func(instance)
File "C:\Users\Akono\AppData\Roaming\Python\Python37\site-packages\cryptography\hazmat\backends\openssl\x509.py", line 127, in extensions
self._backend, self._x509
File "C:\Users\Akono\AppData\Roaming\Python\Python37\site-packages\cryptography\hazmat\backends\openssl\decode_asn1.py", line 252, in parse
value = handler(backend, ext_data)
File "C:\Users\Akono\AppData\Roaming\Python\Python37\site-packages\cryptography\hazmat\backends\openssl\decode_asn1.py", line 400, in _decode_authority_information_access
return x509.AuthorityInformationAccess(access_descriptions)
File "C:\Users\Akono\AppData\Roaming\Python\Python37\site-packages\cryptography\x509\extensions.py", line 286, in __init__
def __repr__(self):
TypeError: Every item in the descriptions list must be an AccessDescription
解决方案
我想你想要这样的东西?
res1= requests.get(url)
f_html = utils.format_html(res1.text)
def format_html(self, html_str):
"""
format html page source, BeautifulSoup makes sure formatted output source is valid for parsing
:param html_str: html page source string
:return: formatted html
"""
soup = bs4.BeautifulSoup(html_str, 'html5lib')
f_html = soup.prettify()
logging.debug(f'Formatted html::: {f_html}')
return f_html
推荐阅读
- javascript - 如何在不重新加载页面的情况下更改页面 url
- python - 尝试使用 Docker jupyter/tensorflow-notebook 登录 Jupyter 笔记本时令牌无效
- swift - 为 SceneKit 地形节点创建 SCNPhysicsBody?
- r - `mapply`中的`dplyr::filter`
- python-3.x - python3中的“和”运算符
- typescript - Vuetify Rules Typescript 参考 Data() 值
- r - 当我尝试将 excel 文件上传到我的 RStudio 服务器时出现错误
- linux - 块存储未挂载时防止读写目录或挂载点
- java - 使用 Mockito 进行单元测试时的空指针
- visual-studio-code - Visual Studio Code - 复制和粘贴大的东西时某些功能不起作用