前言
公司最近有个现场签到抽奖的活动,期间需要模拟一些签到用户数据(用户昵称、头像)。为了让签到的用户头像更加真实,因此从百度图片素材库中,去提取一些图片作为用户头像。
下方代码会从百度图片素材库中获取图片的链接,最终存放在一个list中。
import requests
import re
from urllib import parseclass ImageSpider:def __init__(self, num):self.url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={}{}'self.headers = {'User-Agent': 'Mozilla/4.0'}self.word_parse = ''self.image_list = [] # 存储图片容器self.num = num # 获取图片 URL 数量def get_image(self, url):# 使用 requests模块得到响应对象res = requests.get(url, headers=self.headers)# 更改编码格式res.encoding = "utf-8"# 得到html网页html = res.text# 正则解析pattern = re.compile('"hoverURL":"(.*?)"', re.S)img_link_list = pattern.findall(html)for i in img_link_list:# 指定获取图片的数量if len(self.image_list) < self.num:self.image_list.append(i)else:returndef main(self):word = ["壁纸", "头像"]# "冷酷", "男生", "霸气", "真实", "哪吒", "古风", "卡通", "头像", "伤感", "风景", "个性", "简单"for i in word:self.word_parse = parse.quote(i)url = self.url.format(self.word_parse, '&pn=0')self.get_image(url)if len(self.image_list) < self.num:print("图片素材不足,请考虑添加搜索图片关键字!")return self.image_listif __name__ == '__main__':images = ImageSpider(200)a = images.main()print(a)