Python教程

python 爬取百度图片

本文主要是介绍python 爬取百度图片,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

学习了python总要拿点东西练练手,爬个东西玩玩吧.参考了一篇文章,地址找不到了,就把注释加一下吧

import requests
#正则  参考https://docs.python.org/zh-cn/3/library/re.html
import re
#操作 https://docs.python.org/zh-cn/3/library/os.html?highlight=os#module-os
import os

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'}
name = input('您要爬取什么图片')
num = 0
x = input('您要爬取几张呢?,输入1等于60张图片。')
for i in range(int(x)):
    # 下载到本地图片的位置
    name_1 = 'C:\\Users\\Administrator\\Desktop\\pic\\'
    # 根据百度图片url发现可以将输入的种类拼接得到对应图片集
    url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word='+name+'&pn='+str(i*30)
    res = requests.get(url,headers=headers)
    print(res)
    htlm_1 = res.content.decode()
    # 正则匹配解析后的html  注意:这里也可以用python解析html的BeautifulSoup4工具或者pyquery等进行匹配
    a =re.findall('"objURL":"(.*?)",',htlm_1)
    # 如果没有文件夹就创建
    if not os.path.exists(name_1):
        os.makedirs(name_1)
    # 循环写到本地
    for b in a:
        num = num +1
        try:
            img = requests.get(b)
        except Exception as e:
            print('第'+str(num)+'张图片无法下载------------')
            print(str(e))
            continue
        f = open(name_1+name+str(num)+'.jpg','ab')
        print('---------正在下载第'+str(num)+'张图片----------')
        f.write(img.content)
        f.close()
print('下载完成')

在这里插入图片描述
在这里插入图片描述

这篇关于python 爬取百度图片的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!