爬虫练手项目_表情包爬取


在这里插入图片描述

确定目标网站并分析

目标网站

斗图啦: 链接https://www.doutula.com/
这个网站也是我聊天斗图时常用的网站之一
毕竟不太会说话,只能发图了
在这里插入图片描述

分析

打开网站,搜索关键词<狗头>,
发现url变成
https://www.doutula.com/search?keyword=狗头
在这里插入图片描述
然后F12打开开发人员工具
发现图片链接就放在标签下面

在这里插入图片描述
好家伙,这个竟如此简单,那就直接放代码吧
在这里插入图片描述

代码

import os
import re
import time
import  requests

#获取表情包对应的url列表
def get_imglist(key,num):
    url = 'https://www.doutula.com/search?keyword={}'.format(key)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
    }
    res = requests.get(url=url, headers=headers)
    img_urllist = re.findall('data-original="(.*?)"', res.text)
    if num>len(img_urllist)or num<0:
        num = len(img_urllist)
    return img_urllist[0:num]

#创建保存表情包的文件夹
def createpath(path):
    print('\r正在创建下载路径', end="")
    if not os.path.exists(path):
        os.mkdir(path)
#下载表情包
def save_img(key,path,urllist):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
    }
    i = 0
    print('\r2s后将开始下载{}表情包'.format(key), end="")
    time.sleep(2)
    for u in urllist:
        i += 1
        name = path + '/' + u[-25:]
        try:
            r = requests.get(url=u, headers=headers)
            with open(name, 'wb') as f:
                f.write(r.content)
            print('\r下载进度:' + "{:3}%".format(int(100 * i / len(urllist))), end="")
        except:
            print('\r{}下载失败'.format(name), end="")

if __name__=='__main__':
    key = input('输入表情包关键词(中文):')
    try:
        num = int(input('输入要爬取的张数(默认10张):'))
    except:
        num = 10
    path = './{}表情包下载'.format(key)
    createpath(path)
    urllist = get_imglist(key, num)
    save_img(key, path, urllist)

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我小兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值