爬取偶像/私房小姐姐图片--爬虫基础篇

1.废话不多说,直接上源码,有注释,相信你们能看到

"""
objective:爬取任意偶像/单词的百度图片(eg:佟丽娅、清纯小姐姐、蔡徐坤)
coding: UTF-8
time:2021/5/5
author:始终是个小白
"""

# 导入相关库
import re
import requests
import os


def dowmload(html, search_word, j):
    pic_url = re.findall('"objURL":"(.*?)",.*?"fromURL"', html, re.S)  # 利用正则表达式找每一个图片的网址
    # print(pic_url)

    n = j * 60
    for k in pic_url:
        print('正在下载第' + str(n+1) + '张图片,图片地址:' + str(k))
        try:
            pic = requests.get(k, timeout=20)
        except requests.exceptions.ConnectionError:
            print('当前图片无法下载')
            continue

        dir_path = r'D:\偶像图片\偶像' + search_word + '_' + str(n+1) + '.jpg'
        if not os.path.exists('D:\偶像图片'):
            os.makedirs('D:\偶像图片')
        fp = open(dir_path, 'wb')
        fp.write(pic.content)
        fp.close()
        n += 1


if __name__ == '__main__':
    name = input("输入你想要获取偶像的名称: ")
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
    page = 1  # 可以自定义,想获取几页就是几页,一页有60张图片,但是有的可能就很少,自己注意下
    for i in range(page):
        url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + name + '&pn=' + str(i * 20)  # 网址
        result = requests.get(url, headers=headers)  # 请求网址
        # print(result.content)  # 如果运行失败,一步一步找到原因,可以先看下网页输出的内容
        dowmload(result.content.decode('utf-8'), name, i)  # 保存图片
print("偶像图片下载完成")

2.输入偶像/其他关键词名称,结果如下

我输入了我的偶像韦德,他的一些图片就都下载了下来

爬取偶像/私房小姐姐图片--爬虫基础篇

当然,你也可以输入"清纯小姐姐私房照"这几个字,看下效果啦,你懂的。。。

再来一个例子吧,输入神"佟丽娅"三个字,结果如下:

爬取偶像/私房小姐姐图片--爬虫基础篇

上一篇:PIC单片机配置字Configuration Bits使用经验


下一篇:定时查询数据库某一字段为空(MySQL)