day 1requests的基本用法

day 1 requests的基本用法

  • 前端三大技术:

    css — 设置网页样式和布局;没有css,内容还在,但网页变丑。

    js — 负责网页变化(如每天新闻和热搜界面) 有自动变和手动变(刷新)

    html — 提供网页内容

  • 目标:识别标签、属性以及标签内容

  1. html

    通过不同的标签来给网页提供不同的内容

    1)标签的语法结构:

    a. 双标签 : <标签名 属性名1=属性值 属性名2 = 属性值2……>标签内容</标签名>

​ b. 单标签: <标签名 属性名1=属性值 属性名2 = 属性值2……> 或者

​ <标签名 属性名1=属性值 属性名2 = 属性值2…… />

在标签间的标签内容中若包含标签,则成为外部标签的子标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vEupCzFO-1679919267232)(D:\dell\Documents\python2301\图片\html.jpg)]

系统环境和虚拟环境
  1. 系统环境:唯一,且只能由安装python而获得

  2. 虚拟环境:不唯一,由程序员自己创建且可以创建多个,必须在系统环境存在的情况下创建

  3. 共同作用:都有python解释器和存放第三方库的容器

    第三方库默认有 pip、setuptools两个库

    创建虚拟环境的建议:
    学习的时候:一类项目一个虚拟环境(爬虫的虚拟环境、数据分析的虚拟环境….),虚拟环境名称与类型有关,如数据分析命名data.

    实际工作、做项目:一个项目一个虚拟环境,此时虚拟环境命名为venv

    创建虚拟环境有两个方法:创建项目时创建, 或在设置中创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Zb7FVyO-1679919267233)(D:\dell\Documents\python2301\图片\虚拟环境1.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lExMqTX0-1679919267233)(D:\dell\Documents\python2301\图片\虚拟环境3.jpg)]

requests

该第三方库为包,查看方法:ctrl + 鼠标放在上面会显示 _ _ init _ _

1. 基本用法

先导再用:

import requests

1)请求网页数据

response = requests.get(网页或网络图片或网络音频视频地址)

2)设置解码方式(结果乱码则需要在获取请求结果前设置解码方式)

在控制台按快捷键:ctrl + f 搜索charset ,对应的值是多少,解码值就写多少。

response.encoding = 'gb2321'

3)获取请求结果

  • 针对网页数据:(结果为网页源代码)

    result = response.text
    print(result)
    
  • 针对图片、视频、音频 结果为二进制形式

print(response.content)
  • 针对js接口,地址以.js结尾的

    print(response.json())
    
2. 添加headers
import requests

添加headers:浏览器伪装(user-agent) 、 免密登录(cookie)、设置代理(proxies)

所有页面的user-agent都一样。

cookie每个页面不一样,需要查看:检查–Network — All – 页面名称 – 刷新页面 — 找到cookie的值

添加header

headers= {'cookie' = ……,
         'user-agent': }
response = requests.get(地址,headers=headers)

# 获取结果
result = response.txt
print(result)
3. 下载图片
import requests

1)获取网络图片数据

response = requests.get(地址)
result = response.content

2)保存图片或音频到本地文件

with open(本地地址,'wb') as f:
    f.write(result)

注意

  • 保存图片时在地址中后缀应为jpg、png等,同理保存音频或视频也应保存为相应格式
  • 图片、音频、视频等文件为二进制形式,最后读应以b读文件。

获取英雄联盟所有英雄的皮肤图片

import requests
import os
#
response = requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?v=19')
heroId = []
for i in response.json()["hero"]:
    heroId.append(i["heroId"])
print(heroId)

# 普通皮肤:
def get_skin(s:str):
    data1 ={}
    response = requests.get(s)
    result = response.json()
    for i in result["skins"]:
        x = "mainImg"
        if i[x] == '':
            x = "chromaImg"
        response1 = requests.get(i[x])
        result1 = response1.content
        if os.path.exists(f'heroskins/{result["hero"]["title"]}'):
            pass
        else:
            os.makedirs(f'heroskins/{result["hero"]["title"]}')
        y = i["name"]
        if '/' in y:
            y = y.replace('/', '.')
            print()
        with open(f'heroskins/{result["hero"]["title"]}/{y}.jpg', 'wb') as f:
            f.write(result1)

# get_skin('https://game.gtimg.cn/images/lol/act/img/js/hero/28.js')  获取一个英雄的皮肤图片

def get_skins():
    for i in heroId:
        get_skin(f'https://game.gtimg.cn/images/lol/act/img/js/hero/{i}.js')

if __name__ == '__main__':
    get_skins()
/act/img/js/hero/28.js')  获取一个英雄的皮肤图片

def get_skins():
    for i in heroId:
        get_skin(f'https://game.gtimg.cn/images/lol/act/img/js/hero/{i}.js')

if __name__ == '__main__':
    get_skins()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值