Python学习--两种方法爬取网页图片(requests/urllib)
实际上,简单的图片爬虫就三个步骤:
- 获取网页代码
- 使用正则表达式,寻找图片链接
- 下载图片链接资源到电脑
下面以博客园为例子,不同的网站可能需要更改正则表达式形式。
requests版本:
import requests import re #获取网页代码 r = requests.get('https://www.cnblogs.com/Mayfly-nymph/p/10663896.html') #根据正则表达式,找寻图片链接 listpic = re.findall(r'http.+\.jpg',r.text) print(listpic) i = 1 #循环获取每个图片链接的内容,以二进制形式输入到文件当中 for url in listpic: with open('D:\\pip\\'+str(i)+'.jpg', 'wb') as f: image = requests.get(url) f.write(image.content) i+=1
urllib版本:
from urllib import request import re url = 'https://www.cnblogs.com/Mayfly-nymph/p/10663896.html' #模拟浏览器发送GET请求 r = request.Request(url) #对页面进行抓取 with request.urlopen(r) as f: data = f.read() #将bytes型数据转化为字符串 data = str(data, encoding='utf-8') #以正则表达式找寻符合要求的图片链接 listpic = re.findall(r'http.+\.jpg', data) print(listpic) i = 1 #循环,下载链接图片资源并保存 for url in listpic: request.urlretrieve(url,'D:\\pip\\'+str(i)+'.jpg') i+=1