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

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:一行数据

转载:

3秒爬取百度图片网站,批量下载各种图片​mp.weixin.qq.com
dbe99f7f2b72e5aed77c4d7bff8f506a.png

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python学习交流群,点击即可加入本群

这里想问大家三个问题:

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

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

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变量,设置成自己想爬取的图片主题和数量就可以运行下载了。爬取的结果如下图所示:

463c45e518d301196d142ca0c91f0e84.png

爬取代码高级版本

上面的代码只能爬取一页,因为他只对一个网址里的图片链接进行提取,如果想爬取大批量的图片,需要提取图片网站下一页的链接,这个核心代码如下:

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

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

1f5d5378b07488ea2bfe57d4938f1565.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值