Python实现获取百度图片URL

前言

公司最近有个现场签到抽奖的活动,期间需要模拟一些签到用户数据(用户昵称、头像)。为了让签到的用户头像更加真实,因此从百度图片素材库中,去提取一些图片作为用户头像。

下方代码会从百度图片素材库中获取图片的链接,最终存放在一个list中。



import requests
import re
from urllib import parse


class 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:
                return

    def 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_list


if __name__ == '__main__':
    images = ImageSpider(200)
    a = images.main()
    print(a)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用Python爬虫获取百度图片,你需要进行以下几个步骤: 1. 获取网页源代码:通过发送HTTP请求获取百度图片搜索结果页面的源代码。可以使用Python中的requests库发送GET请求,并使用该库的content属性获取网页的源代码。 2. 提取图片URL:在网页源代码中,使用正则表达式匹配出所有图片URL。可以使用re库中的findall方法来匹配出所有符合规则的图片URL。 3. 下载保存图片:使用Python的requests库发送HTTP请求,并将获取到的图片数据保存到本地文件中。可以使用requests库的get方法来发送GET请求,并使用content属性获取图片的二进制数据。然后,使用open函数以二进制写入模式打开文件,并使用write方法将图片数据写入文件中。 需要注意的是,为了保存图片,你需要在Python程序所在的目录中创建一个名为"picture"的文件夹。 下面是一个简单的示例代码,演示了如何使用Python爬虫获取百度图片: ```python import re import requests def get_img_url(data): '''匹配出图片URL''' url_re = re.compile('"thumbURL":"(.*?)","replaceUrl"') url_list = url_re.findall(data) return url_list def get_img(url): '''下载并保存图片''' img = requests.get(url).content with open('picture/{}.jpg'.format(name), 'wb') as save_img: save_img.write(img) # 发送HTTP请求,获取网页源代码 response = requests.get('https://www.baidu.com/s?wd=python') data = response.text # 提取图片URL url_list = get_img_url(data) # 下载保存图片 for url in url_list: get_img(url) ``` 请注意,为了运行这个示例代码,你需要先安装requests库,可以使用pip install requests命令进行安装。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月的小尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值