HTTPError问题:urllib.request.urlopen python请求错误

时间:2019-01-30 00:04:19

标签: python python-3.x

我正在尝试通过以下方式提出网络请求:

import urllib.request, urllib.parse, urllib.error
import ssl


ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

 long = 'https://www.elespectador.com/deportes/futbol-colombiano'
 if len(long) < 60:
     data_2 = urllib.request.urlopen(long, context = ctx).read().decode()

但我收到此错误:

 File "C:\Users\acer\Anaconda3\lib\urllib\request.py", line 650, in 
http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

 HTTPError: Bad Request

我不知道该如何处理或出了什么问题,除了有时会运行,而且只有很少的时间。 我要解决 谢谢!

2 个答案:

答案 0 :(得分:0)

这将为您处理SSL内容, 但我认为它仅适用于Pip 9及以下版本:

from pip._vendor import requests
link = "https://www.elespectador.com/deportes/futbol-colombiano"    
answer = requests.get(link)
answer_text = answer.text

答案 1 :(得分:0)

我用一个循环解决了这个问题,它使请求多次重复,直到没有提示为止:

long = 'http://www.elcolombiano.com/deportes/futbol-europeo'

while data_0 is None:
contador = contador + 1
try:
    data_0 = urllib.request.urlopen(long, context = ctx).read().decode()
    soup2 = BeautifulSoup(data_0, "html.parser")
    tags_2 = soup2('a')
except:
    print(contador)