图片和文字其实只有几个小地方是不同的,浏览器上每张图片都是通过一个url定位到的,且它是二进制文件。所以爬取过程和文字有一点点不同,,也就一点点。
这次爬取的网址是http://www.xiaohuar.com/2014.html。打开是不是发现里面有许多校花图片呢,没错,这次就是从爬取这些校花的图片并保存到自己磁盘中。
一、找规律
首先,你需要找到一张图片的url,怎么找呢?打开这个网站,按F12进入控制台界面。
先点击1处,再点击2处,就会发现3处有个url,这个就是这张图片的url地址了,你搜索这个url,即可看到图片。
在你多试探几次后,你会发现这些图片的url是由规律的,它们只有一部分地方不同。所以你现在需要从你知道的网址,即http://www.xiaohuar.com/2014.html中找到每张图片的url,将图片爬取下来即可。
import requests
import re
# 起始url
first_url = "http://www.xiaohuar.com/2014.html"
# http响应
reponse = requests.get(first_url)
# 设置正确的编码
reponse.encoding = 'GBK'
# 获取文本信息
html = reponse.text
print(html)
# 找到所有的img的url
# src="/d/file/b14d5053e8f62f76ab4effe2d14aa419.jpg"
img_urls = re.findall(r'src="(/d/file/\w+\.jpg)"', html)
# \w匹配数字和字母后面接+匹配多个,,,全是数字就用\d
# 拼接出完整的url加上域名
img_num = len(img_urls)
for i in range(img_num):
img_urls[i] = "http://www.xiaohuar.com%s" % img_urls[i]
# 下载
for img_url in img_urls:
# 获取文件名,字符串分割,列表的索引最后一个/后的字符串
img_file_name = img_url.split('/')[-1]
img_data = requests.get(img_url).content # 相当于reponse.content
with open(img_file_name, "wb") as f:
f.write(img_data)
print(img_url)
运行之后,是不是发现文件夹中出现了许多图片文件呢,那么恭喜你,成功了!