爬取糗图笔记2021-07-21

跟着B站大神的课做出来的,但是好多地方不明白头疼啊!!

# -*- coding: utf-8 -*-
# @File : 糗图2.py
# @Author : 刘航宇
# @Time : 2021/07/20 19:48:07

import urllib
import requests
import re
import os
import time


def handle_request(url, page):
    url = url + str(page) + '/'
    # print(url)
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}
    response = requests.get(url=url, headers=headers)
    return response


def download_image(content):
    pattern = re.compile(
        r'<div class="thumb">.*?<img src="(.*?)".*?</div>', re.S)
    lt = pattern.findall(content)
    # print(lt)
    # 遍历列表,依次下载图片
    for image_src in lt:
        # 先处理image_src
        image_src = 'https:' + image_src
        # 发送请求,下载图片
        # 创建文件夹
        dirname = 'qiutu'
        if not os.path.exists(dirname):
            os.mkdir(dirname)
        # 图片的名字叫啥
        filename = image_src.split('/')[-1]
        filenath = dirname + '/' + filename
        print('%s图片正在下载.....'% filename)
        urllib.request.urlretrieve(image_src,filenath)
        print('%s图片结束下载.....'% filename)
        time.sleep(1)


def main():
    url = 'https://www.qiushibaike.com/imgrank/page/'
    start_page = int(input("请输入起始页码:"))
    end_page = int(input("请输入结束页码:"))
    for page in range(start_page, end_page + 1):
        print('第%s页开始下载...'% page)
        # 生成请求对象
        requests = handle_request(url, page)
        # 发送请求对象,获取响应内容
        content = requests.content.decode('utf-8')
        # 解析内容,提取所有的图片链接,下载图片
        download_image(content)
        print('第%s页下载完毕'% page)
        print()
        print()
        time.sleep(2)


if __name__ == "__main__":
    main()

编辑器:VS code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值