您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 1浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python血脉贲张的cosplay小姐姐图片

嗨学编程 发布时间:2020-09-22 15:20:46 ,浏览量:1

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

基本环境配置
  • python 3.6
  • pycharm
  • requests

相关模块pip安装即可

确定目标网页

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

分析网页

1、查看图片地址 在这里插入图片描述 在这里插入图片描述

代码实现
import requests
import parsel
url = 'https://bcy.net/coser/toppost100'
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
urls = selector.css('.rank-index-box .rank-cos-top img::attr(src)').getall()
titles = selector.css('.rank-index-box .rank-cos-avatar-box p::text').getall()
lis = zip(urls, titles)
for i in lis:
    img_url = i[0]
    title = i[1]
    response_2 = requests.get(url=img_url, headers=headers)
    path = 'D:\\python\\demo\\cos小姐姐\\img\\' + title + '.jpg'
    with open(path, mode='wb') as f:
        f.write(response_2.content)
        print(img_url)

在这里插入图片描述 图片数据是爬取下来了,但是保存数据后发现,仅仅只有20张图片,这根本不是我想要的~ 在这里插入图片描述 所以要重新分析网页了~看一下是否有接口数据 在这里插入图片描述 我清空所有加载出来的数据,下拉的时候,然后出现一个神秘地址,点击去一看,果然是接口数据。为了保证准确性,咱们可以多往下翻翻

果然~~~ 在这里插入图片描述 通过链接对比,发现接口数据的参数P是改变的,等同于页数编码,1就是对应的前20张图片数据 在这里插入图片描述 在这里插入图片描述

代码实现
import requests
for page in range(1, 6):
    url = 'https://bcy.net/apiv3/rank/list/itemInfo'
    params = {
        'p': '{}'.format(page),
        'ttype': 'cos',
        'sub_type': 'week',
        'date': '20200922',
        '_signature': 'a2ovWQAAAAAem6QHkeiiVmtqL0AADQG',
    }

    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
    }
    '''
    Json 接口数据
    '''
    response = requests.get(url=url, params=params, headers=headers)
    html_data = response.json()
    info_list = html_data['data']['top_list_item_info']
    for i in info_list:
        img_url = i['item_detail']['cover']
        title = img_url.split('/')[-1].split('~')[0]
        response_2 = requests.get(url=img_url, headers=headers)

        path = 'D:\\python\\demo\\cos小姐姐\\img\\' + title + '.jpg'
        with open(path, mode='wb') as f:
            f.write(response_2.content)
            print(img_url)
关注
打赏
1663681728
查看更多评论
立即登录/注册

微信扫码登录

0.2629s