成功获取图片链接后却无法向本地写入图片?
这是源码,20页的图片链接存放在links中用循环写入本地,链接能够正确得出,但写入本地部分会报错
import requests
import urllib.request
from time import sleep
from bs4 import BeautifulSoup
# url = 'https://weheartit.com/inspirations/taylorswift?page=1&before=275543698'
urls = ['https://weheartit.com/inspirations/taylorswift?page={}&before=275543698'.format(str(i)) for i in range(1,21)]
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
}
proxies = {"http": "http://122.72.32.73:80"}
folder_path = r'E:\文档\Python\Taylor Swift'
links = []
i = 0
def get_image(url):
data = requests.get(url, headers=headers)
sleep(2)
soup = BeautifulSoup(data.text,'lxml')
imgs = soup.select('img[width="300"]')
# 判断链接后缀并替换为.webp
for img in imgs:
link = img.get('src')
if link[-4:] =='.png':
img_link = link.replace('png', 'webp')
else:
img_link = link.replace('jpg','webp')
links.append(img_link)
for link in links:
urllib.request.urlretrieve(link, folder_path + '\\' + str(i) + link[-4:])
global i
i += 1
print('完成第%d张' % i)
for url in urls:
get_image(url)
报错内容:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:720)>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你该import ssl
https://stackoverflow.com/que...
实际用的代码,不是你给出的代码吧。
报错信息是证书问题,而源网站证书我现在访问没问题,我猜,是因为你用了代理,而代理那层你没有处理证书。(怎么处理又要说一大堆)
最近使用python2.7.12 访问公司的https API获取内容,同样引发这个错误。找到一圈原因如下:
Python 2.7.9 之后引入了一个新特性,当你urllib.urlopen一个 https 的时候会验证一次 SSL 证书,当目标使用的是自签名的证书时就会raise urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> 的错误消息. requests 也一样。
对于requests模块,post和get都有一个叫verify的参数,把他设成False就可以了。