gpt4 book ai didi

jupyter notebook 中 scrapy 的 SSLError

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:02 25 4
gpt4 key购买 nike

我正在使用 jupyther notebook 从网页中提取项目。对于我得到的某些页面,我可以加载页面的内容,这就是我正在使用的代码:

import requests  
from scrapy.http import TextResponse

start_url = 'https://www.insulation-expo.com/exhibito...16_72.html?offset=0&az=B&aid=34908&return=MzY6TDJWNGFHbGlhWFJ2TGk0dU1UWmZOekl1YUhSdGJEOXZabVp6WlhROU1DWmhlajFD#content'
r = requests.get(start_url)
response = TextResponse(r.url, body=r.text, encoding='utf-8')

我得到的错误:

SSLError: hostname 'www.insulation-expo.com' doesn't match either of 'www.reedexpo.de', 'reedexpo.de'

虽然我可以在 shell 中打开页面

scrapy shell  'https://www.insulation-expo.com/exhibito...16_72.html?offset=0&az=B&aid=34908&return=MzY6TDJWNGFHbGlhWFJ2TGk0dU1UWmZOekl1YUhSdGJEOXZabVp6WlhROU1DWmhlajFD#content'

最佳答案

问题是您的客户端没有使用 Server Name Indication (SNI) ,即在 SSL 握手中发送目标主机名。这需要在 SSL 握手中区分同一 IP 地址上的不同主机,以便服务器可以提供正确的证书。如果没有 SNI,SSL 客户端会在该 IP 地址上获得 www.reedexpo.de 的证书。通过在使用 SNI 的 SSL 握手中包含主机名 www.insulation-expo.com,客户端将获得对该主机名有效的证书。

搜索 scrapy sni 时有很多命中根据此信息,人们可能会认为该问题应该使用 scrapy 版本 1.0.0 (2015-06-19) 或 1.1.0 (2016-05-11) 来解决。所以请检查你的 scrapy 版本是否足够新。

关于jupyter notebook 中 scrapy 的 SSLError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com