2016-10-28 10 views
0

나는 웹 페이지에서 항목을 추출하기 위해 jupyther notebook을 사용하고 있습니다.SSLError with jupyter 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' 

내가 할 수있는 내가 페이지의 콘텐츠를로드 할 수 있습니다지고있어 일부 페이지 는 도스는 내가 사용하는 코드입니다

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

답변

2

문제는 클라이언트 즉 SSL 핸드 셰이크에서 대상 호스트 이름을 전송, Server Name Indication (SNI)을 사용하지 않는 것입니다하지만 쉘에서 페이지를 엽니 다. 이는 서버가 올바른 인증서를 제공 할 수 있도록 이미 SSL 핸드 셰이크 내 동일한 IP 주소에있는 다른 호스트를 구별하기 위해 필요합니다. SNI가 없으면 SSL 클라이언트는이 IP 주소에서 www.reedexpo.de에 대한 인증서를받습니다. SNI를 사용하여 SSL 핸드 셰이크에 호스트 이름 www.insulation-expo.com을 포함하면 클라이언트는 대신이 호스트 이름에 유효한 인증서를 가져옵니다.

scrapy sni을 검색 할 때 수많은 조회수가 있으며이 정보를 통해 1.0.0 (2015-06-19) 또는 1.1.0 (2016-05-11)으로 문제를 해결해야한다고 생각할 수 있습니다. . 그러므로 치료 버전이 최신 버전인지 확인하십시오.

관련 문제