侧边栏壁纸
  • 累计撰写 46 篇文章
  • 累计创建 38 个标签
  • 累计收到 2 条评论
隐藏侧边栏

python 爬取百度图片

哒卟刘先生
2022-01-10 / 0 评论 / 0 点赞 / 101 阅读 / 1,120 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-10,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

学习了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('下载完成')

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

0

评论区