我觉得我写的爬图片的代码看着很舒服

闲着也是闲着:
目标网站:http://image.so.com
代码:

# _*_ coding:utf-8 _*_

import os
import requests
from time import sleep
from urllib.parse import urlencode

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36',
    'Referer': 'https://image.so.com/z?ch=beauty',
    # 指从哪个网址跳转过来的,一般的都会有这个请求头的限定
    'Host': 'image.so.com'
    # 这个是指要访问的主机
}


def parse_cover_page(page):

    html = requests.get(url='https://image.so.com/zj?ch=beauty&sn={page}&listtype=new&temp=1'.format(page=page),headers=headers,verify=False)
    sleep(2)
    json_res = html.json()
    if 'list' in json_res:
        for cover_image in json_res.get('list'):
            #cover_imgurl = cover_image.get('cover_imgurl')
            # 套图的封面图片链接
            group_title = cover_image.get('group_title')
            # 这个是套图的标题
            gro_id = cover_image.get('id')
            # 提取这个套图的id
            params = {'ch':'beauty','id':gro_id}
            params = urlencode(params)
            # 构造链接的参数
            url = 'https://image.so.com/zvj?'+params
            print(url)
            parse_one_group_pic(url,group_title)



def parse_one_group_pic(url,group_title):
        html = requests.get(url=url,headers=headers,verify=False)
        sleep(0.5)
        if 'list' in html.json():
            for pic in html.json().get('list'):
                pic_url = pic.get('pic_url')
                pic_index = pic.get('index')
                if not os.path.exists('D:/pictures/{nam}'.format(nam=group_title)):
                    os.makedirs('D:/pictures/{nam}'.format(nam=group_title))
                    # 对文件夹的创建
                with open('D:/pictures/{nam}/{pic_index}.jpg'.format(nam=group_title,pic_index=pic_index),'wb') as f:
                    f.write(requests.get(url=pic_url,headers=headers,verify=False).content)
                    sleep(0.2)

if  __name__ == "__main__":
    for page in range(0,91,30):
        parse_cover_page(page)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值