我试图解析此网址中的数据:
https://www.chemeo.com/search?q=show%3Ahfus+tf%3A275%3B283
但我认为这是失败的,因为该网站使用SSL TLS 1.3。如何在下面启用我的Python脚本,以便在urllib.request中使用SSL进行连接?
我尝试过使用SSL上下文,但这似乎不起作用。
这是我的Python 3.6代码:
import urllib.request
import ssl
from bs4 import BeautifulSoup
scontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
chemeo_search_url = "https://www.chemeo.com/search?q=show%3Ahfus+tf%3A275%3B283"
print(chemeo_search_url)
with urllib.request.urlopen(chemeo_search_url, context=scontext) as f:
print(f.read(200))
答案 0 :(得分:0)
尝试:
ssl.PROTOCOL_TLS
From the docs on "PROTOCOL_SSLv23":
自版本2.7.13后不推荐使用:改为使用PROTOCOL_TLS。
注意:强>
确保安装了CA证书捆绑包,例如在最低版本的alpine linux,busybox上,必须安装证书。有时候如果没有使用SSL支持编译python,可能有必要这样做。此外,根据已编译的OpenSSL版本,还将确定SSL的哪些功能可用。
另请注意,chemeo网站没有使用TLSv1.3 ...它仍然是实验性的,并且在写这篇文章的时候并不是那么安全,它们目前支持使用" letsencrypt& #34;作为他们的证书提供者。