今日头条的街拍图片的简单自动爬取

import requests
import re,os
import json
from urllib import request
#定义一个函数
def tout(url):
    #定义头部信息
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }
    response = requests.get(url)
    #直接用json方法转成字典类型
    res_dict = response.json()
    # print(type(res_dict))
    #设置一个文件夹用来存放爬取的照片
    if not os.path.exists('downloads'):
        os.mkdir('downloads')
    #循环取出详情页的url
    for v in res_dict['data']:
        if 'article_url' in v :
            s = v['article_url']

            response = requests.get(s,headers=headers)


            res_str = response.text

            sp = r'JSON\.parse\((.*)\),'
            #利用正则的方法匹配出图片路径
            c_res = re.search(sp,res_str)

            if c_res:
                #这儿两次转字典,第一次是去掉最外面的双引号,第二次是转为字典类型
                res = json.loads(c_res.group(1))
                res_dict = json.loads(res)
                urlss = res_dict['sub_images']
                #循环遍历出图片的路径
                for v in urlss:
                    urls = v['url']
                    # print(urls)
                    #定义文件名
                    filename = urls.split('/')[-1] + '.jpg'
                    print(filename)
                    #文件保存路径
                    paths = 'downloads/'+filename
                    #下载图片的方法
                    request.urlretrieve(urls,paths)
#定义一个循环,可以自己DIY循环的次数
i = 0
while i<21:
    url = 'https://www.toutiao.com/search_content/?offset='+str(i)+'&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'
    #调用函数
    tout(url)
    i += 20





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值