*作为爬虫新手,这个案例可以说是最基础的一个案例,要完成的任务就是在静态网页里获取图片的地址,然后下载到电脑里面去。这里就以yh31网址的“受气包包图片系列”为实例。
在这里进行思路分析:
首先肯定要获取静态目标网页的网址以及网页图片源代码数据;
然后用正则匹配不同的图片地址,产生匹配后的结果;
最后用源代码和产生匹配后的结果找到爬取图片的地址。
具体的代码(附加注释)如下:*
import requests#导入第三方的http请求库
import re#导入标准库(正则)
def get_urls():#定义获取动态网页网址函数
respond = requests.get('https://qq.yh31.com/zjbq/1399178.html')#第一步
url_add = r'<img src="(.*?)" />'#第二步
#其中单引号内部为图片源代码数据,地址中想同的部分包留,不同的部分用 .*?表示。.表示任意不换行字符,*表示数量,?表示尽可多的短的非贪婪匹配。
url_list = re.findall(url_add,respond.text)#第三步
return url_list#根据打印的结果,是在数列里的一系列图片源代码数据,而最后的结果是需要图片的地址
def get_gif(url,name):# 定义第二个函数 目的:下载数据(爬取的图片)
response = requests.get(url)
with open('E:\\python 爬虫方向\spider data1\%d.gif'%name,'wb') as ft:
#E:\python 爬虫方向\spider data1(图片存放的地址) respond.text指源代码 respond.content 指二进制
ft.write(response,content)
if __name__ == '__main__':#开始运行指令
url_list = get_urls()
a = 1#定义一个变量 目的:给图像命名(下载的图像以1.gif,2.gif等等方式命名)
for url in url_list:#将列表中的数据提取出来
com_url = 'https://qq.yh31.icom'+url#在这里进行说明一下,提取出来篇的图片源代码和图片地址之间的区别
#https://qq.yh31.com/tp/zjbq/202002132312491484.gif(图片地址)
#tp/zjbq/202002132312491484.gif(图片源代码)
get_gif(com_url,a)
a += 1
print(com_url)
最后的结果如下:
谢谢大家,小编会不懈努力一直虚心做一名小白,终有一天一定会成为一名大佬,学编程的小白们,一起加油!武汉加油,中国加油!