从今日头条爬取美女图片,保存到文件夹中(Python语法)

import requests,re,json,os
from urllib import request

# 当前路径下新建文件夹
if not os.path.exists('download2'):
    os.mkdir('download2')
#ajax获取路由
i = 0
z = 0
while i < 3:

    url = 'https://www.toutiao.com/search_content/?offset='+'z'+'&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'
    response = requests.get(url)

    #可以通过response.json直接获取转化后的对象(dict)
    html_json_dict = response.json()

    #获取dict中data key对应的列表
    data_list = html_json_dict['data']

    #遍历data_list列表中的每一项,有article_url我们就取这个值。
    for data_item in data_list:
        if 'article_url' in data_item:
            article_url = data_item['article_url']
            #获取请求头
            headers = {
                'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
            }
            #获取返回状态码
            response = requests.get(article_url,headers=headers)
            #获取返回页面,字符串格式
            html_str = response.text
            #正则匹配条件
            pattern = r'gallery: JSON\.parse\((.*)\),'
            #进行正则匹配
            match_res = re.search(pattern, html_str)


            # 如果正则匹配成功
            if match_res:
                # 获取匹配成功的内容
                json_origin = match_res.group(1)
                # 去掉字符串
                json_buzhidao = json.loads(json_origin)
                # 将字符串格式转化为字典格式
                res_dict = json.loads(json_buzhidao)
                # 获取需要的图片路由
                sub_images_list = res_dict['sub_images']
                # 遍历图片路由
                for image in sub_images_list:
                    #找到需要的图片路由
                    image_url = image['url']
                    # 文件路径及命名
                    filename = 'download2/' + image_url.split('/')[-1] + '.jpg'
                    # 下载图片,放到指定文件夹下
                    request.urlretrieve(image_url, filename)
            else:
                print('你写错了')
    z += 20
    i += 1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值