专栏首页一行数据3秒爬取百度图片网站,批量下载各种图片

3秒爬取百度图片网站,批量下载各种图片

大家好,我是行哥,一个专门教小学生学Python的编程老师

这里行哥想问大家三个问题:

  • 你还在为表情包各种偷图吗?
  • 你还在为找不到好看的图片素材在烦恼吗?
  • 你还在为各种精美壁纸的挑选和下载找遍各大网站吗?

行哥写了30行Python代码来帮你解决这个问题,现在你只要对代码进行复制、粘贴、运行三连就可以爬取你想要的图片。

如果不会Python也没有问题,行哥将Python代码转成可以直接使用的应用程序,文末放上爬虫exe的获取方式

no bb show your code

import os
import requests
import re

keyWord = "杨超越" # 设置爬取图片的主题
number = 10       # 爬取图片数量
if not os.path.exists(keyWord):
    os.makedirs(keyWord)
url = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq' \
      r'=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd' \
      r'=1497491098685%5E00_1519X735&word=' + keyWord
get = requests.get(url)
pciture_url = re.findall(r'objURL":"(.*?)",', get.text)
a = 1
for i in pciture_url:
    p_type = i.split('.')[-1]
    a += 1
    try:
        picture = requests.get(i, timeout=10)
        name = "%s/%s_%d.%s" % (keyWord, keyWord, a, p_type)
        with open(name, 'wb') as f:
            f.write(picture.content)
        print('第%d张图片正在下载' % a)
    except:
        print('第%d张图片下载失败!已跳过...' % a)
    if a >= number:
        break

代码逻辑主要是爬取百度图片网站的网页源码,然后从源码中提取每张图片的地址链接,使用循环保存每一张图片。

可以将这份代码直接拷贝到Python编辑器里,只需要修改keyWord变量和num变量,设置成自己想爬取的图片主题和数量就可以运行下载了。爬取的结果如下图所示:

爬取代码高级版本

上面的代码只能爬取一页,因为他只对一个网址里的图片链接进行提取,如果想爬取大批量的图片,需要提取图片网站下一页的链接,这个核心代码如下,如果需要完整版代码可以后台回复【一行01】就可以获得所有代码

def get_url_one_page(url):
    html = requests.get(url)
    html.encoding = 'utf-8'
    html = html.text
    url_pic_this_page = re.findall(r'"objURL":"(.*?)",', html)
    url_next_page_prefix = re.findall(r'<a href="(.*?)" class="n">下一页', html)
    if len(url_next_page_prefix) != 0:
        url_next_page = 'http://image.baidu.com' + url_next_page_prefix[0]
    else:
        print("已到达最后一页!")
        url_next_page = None
    return url_pic_this_page, url_next_page

不会代码也可以使用爬虫

之前的爬虫,很多读者说没有接触过Python或者爬虫,想实现功能又看不懂代码。所以行哥在这里已经将这个Python代码转成可以直接使用的exe,如下图所示:

在爬取关键词里输入想要爬取的图片主题,然后输入爬取图片张数,最后选择图片保存的路径并点击开始爬取就只需要静静等待即可(网速够快的话,一般来说一秒下载一张图片)最后下载后的结果如下

在公众号后台回复【一行01】就可以获得这款可以直接使用爬虫取图片的应用程序咯

end:一行行行行行,一行数据

本文分享自微信公众号 - 一行数据(rowdata),作者:一行数据

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【没落的985/211】Python爬取知乎8万字回答进行高校分析

    最近知乎一个“有哪些较原来没落的985/211院校?”的问题引起了很多人的关注,回答者各种分析,但是究竟哪些学校是公认最没落的却没有定论

    行哥玩Python
  • 吞了1000瓶老干妈的南山头铁鹅,Python制作千图成像(附上源代码和应用程序)

    最近的瓜可谓真有意思,南山头铁鹅也默默吞下下了1000瓶老干妈。此时用这张1000张老干妈辣椒酱图片组成的企鹅来表达最适合不过了

    行哥玩Python
  • 五行Python代码自动换你的电脑桌面壁纸(内附源码和exe)

    只需要一行代码,指定图片地址即可更换电脑桌面。加上壁纸文件夹路径,让你随机更换电脑桌面,带来不期而遇的新鲜。使用爬虫技术,自动下载壁纸自动更换壁纸,让你的电脑每...

    行哥玩Python
  • HTML图片标签学习

    葆宁
  • 验证码识别思想

    其实就几个步骤: 1:用程序先把所有验证码(已知的,单个的)的灰度值放入一个数组 2:分割未知验证码,把未知验证码的一个一个数字或字母分割出来 3:分别取分割验...

    javascript.shop
  • CVE-2017-11882及利用样本分析

    1.本文由复眼小组ERFZE师傅原创 2.本文略微偏向基础,首先介绍了该漏洞的成因,并且分析了该漏洞在蔓灵花,摩诃草,响尾蛇APT组织用于实际攻击活动中的详细调...

    Gcow安全团队
  • 深度学习与强化学习

    随着 DeepMind 公司的崛起,深度学习和强化学习已经成为了人工智能领域的热门研究方向。除了众所周知的 AlphaGo 之外,DeepMind 之前已经使用...

    张戎
  • 2017第三季度移动行业数据报告

    在如今移动设备规模增速明显放缓,移动设备趋于饱和的情况下,移动互联网人口红利基本结束,逐渐演变成对存量设备的争夺。

    旺仔小小鹿 .
  • Android高效加载大图、多图解决方案,有效避免程序OOM

    高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的...

    用户1158055
  • android加载大图,防止oom

    高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券