> 文章列表 > day 1requests的基本用法

day 1requests的基本用法

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.contentif os.path.exists(f'heroskins/{result["hero"]["title"]}'):passelse: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()