我试图打开https://ibmdatawarehousing.wordpress.com/category/theme-ibm-data-warehouse/
## all imports
from IPython.display import HTML
import numpy as np
import urllib.request, urllib.error
import bs4 #this is beautiful soup
import time
import operator
import socket
import pickle
import re # regular expressions
from pandas import Series
import pandas as pd
from pandas import DataFrame
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set_context("talk")
sns.set_style("white")
from secret import *
url = 'http://www.crummy.com/software/BeautifulSoup/'
source = urllib.request.urlopen(url).read()
print(source)
但它返回了一个错误,我已经搜索过但无法找到任何解决方案。它适用于其他网站。
SSLEOFError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
1253 try:
-> 1254 h.request(req.get_method(), req.selector, req.data, headers)
1255 except OSError as err: # timeout error
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
1254 h.request(req.get_method(), req.selector, req.data, headers)
1255 except OSError as err: # timeout error
-> 1256 raise URLError(err)
1257 r = h.getresponse()
1258 except:
URLError: <urlopen error EOF occurred in violation of protocol (_ssl.c:645)>
谢谢,
答案 0 :(得分:0)
网站http://www.crummy.com/software/BeautifulSoup/在访问时使用SSL重定向到https的事实解释了为什么SSL存在问题。 SSLEOFError
表示基础SSL连接突然终止。由于它确实对我来说工作正常,您确定您的网络按预期工作吗?您可能会坐在某种代理之后,这会给您带来SSL问题或者不允许SSL连接(例如,由于缺少根证书而允许代理拦截连接)。
您也可以尝试通过添加自定义SSL上下文来忽略证书(Python&gt; = 2.7.9 / 3.4.3):
import ssl
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
urllib.requests.urlopen("https://the.url/path", context=context).read() # ...
但是,我不确定这是否能解决您的问题,因为即使在检查证书之前也可能发生错误(例如,在潜在代理只是中止SSL连接的情况下)。
旁注/建议:还有一个很好的其他Python模块requests
,它使HTTP请求更加简单。