znjlsw 发表于 2022-9-26 10:04

学习python图片下载报错ssl.SSLError,请教怎么解决



执行request.urlretrieve下载图片的时候成功几次后总会报这个错误,但是在朋友的电脑上就不会报这个错误,不知道为啥,求大佬指教。
底下是所有的代码。

小洲 发表于 2022-9-26 10:26

头部加
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
请求加
info = requests.get(url=url,timeout=10, verify=False, allow_redirects=False)

znjlsw 发表于 2022-9-26 11:24

小洲 发表于 2022-9-26 10:26
头部加
import requests
from requests.packages.urllib3.exceptions import I ...

import requests#Python向服务器发起网络请求
from lxml import etree
import time
from urllib import request
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

url = 'https://www.huya.com/g/2168'

result = requests.get(url=url, timeout=10, verify=False, allow_redirects=False).text
data = etree.HTML(result)
demo = data.xpath("//@data-original")
foriin demo:
    newUrl = i
    # print(newUrl)
    if 'http' in newUrl:
      # print('存在')
      if '?' in newUrl:
            newUrlList = newUrl.split('?')
            newUrl = newUrlList
    else:
      print('不存在')
      continue
    print(newUrl)
    request.urlretrieve(newUrl,r'./huya/' + str(round(time.time() * 1000)) + '.jpg')
    print("<%s>下载完毕!" %(str(round(time.time() * 1000)) + '.jpg'))


代码改成这个样子了 但是还是跟之前一样会报这个错:ssl.SSLError: decryption failed or bad record mac (_ssl.c:2536)。

Prozacs 发表于 2022-9-26 11:32

znjlsw 发表于 2022-9-26 11:24
import requests#Python向服务器发起网络请求
from lxml import etree
import time


换个网络热点

hanzj06 发表于 2022-9-26 11:38

你电脑设置了代{过}{滤}理?

znjlsw 发表于 2022-9-26 11:41

hanzj06 发表于 2022-9-26 11:38
你电脑设置了代{过}{滤}理?

应该是没有 但是我放在另个一朋友电脑上跑就不会有这个报错,而且他也没有加什么代{过}{滤}理。

znjlsw 发表于 2022-9-26 11:48

Prozacs 发表于 2022-9-26 11:32
换个网络热点

换过了公司里最快的wifi了而且同事跟我在同一个wifi他电脑能跑

hanzj06 发表于 2022-9-26 11:49

znjlsw 发表于 2022-9-26 11:41
应该是没有 但是我放在另个一朋友电脑上跑就不会有这个报错,而且他也没有加什么代{过}{滤}理。

本地不能设置代{过}{滤}理,包括你抓包软件;如果设置了代{过}{滤}理,python的requests请求里也要加上代{过}{滤}理部分的代码,类似这种
proxies={"http": "127.0.0.1"}
response = requests.get(url=url, proxies=proxies)

tianyagd 发表于 2022-9-26 11:51

verify=False 加这个参数

znjlsw 发表于 2022-9-26 11:53

tianyagd 发表于 2022-9-26 11:51
verify=False 加这个参数

from lxml import etree
import time
from urllib import request
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

url = 'https://www.huya.com/g/2168'
result = requests.get(url=url, timeout=10, verify=False, allow_redirects=False).text
data = etree.HTML(result)
demo = data.xpath("//@data-original")
foriin demo:
    newUrl = i
    # print(newUrl)
    if 'http' in newUrl:
      # print('存在')
      if '?' in newUrl:
            newUrlList = newUrl.split('?')
            newUrl = newUrlList
    else:
      print('不存在')
      continue
    print(newUrl)
    request.urlretrieve(newUrl,r'./huya/' + str(round(time.time() * 1000)) + '.jpg')
    print("<%s>下载完毕!" %(str(round(time.time() * 1000)) + '.jpg'))
这是现在的代码 已经添加了 verify=false 还是会报错

页: [1] 2
查看完整版本: 学习python图片下载报错ssl.SSLError,请教怎么解决