jupyter笔记本中带刮痕的SSLError

jupyter笔记本中带刮痕的SSLError,ssl,web-scraping,scrapy,Ssl,Web Scraping,Scrapy,我正在使用jupyther笔记本从网页中提取项目。 对于我得到的一些页面,我可以加载页面内容,这是我使用的代码: 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=MzY6TDJWNGFHbGlhWFJ2TGk0dU1

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

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'

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


搜索此信息时会出现大量点击,根据这些信息,人们可能会认为该问题应该用scrapy版本1.0.0(2015-06-19)或1.1.0(2016-05-11)修复。因此,请检查您的scrapy版本是否足够新。

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

搜索此信息时会出现大量点击,根据这些信息,人们可能会认为该问题应该用scrapy版本1.0.0(2015-06-19)或1.1.0(2016-05-11)修复。因此,请检查您的刮擦版是否足够新