day16 Requests
一、电脑环境
1、系统环境:
提供python解析器
提供第三方库:一般含有pip、setuptools
2、虚拟环境:多个,在系统环境必须存在
第三方库尽量放在虚拟环境,方便管理
一个环境中只能放一个相同的第三方库版本
3、创建虚拟环境的建议:
学习的时候:一类项目一个虚拟环境(爬虫的虚拟环境、数据分析的虚拟环境….)
实际工作、做项目:一个项目一个虚拟环
二、Requests基本操作
- 导入第三方库
- 1、请求网络数据 requests.get(请求地址)
- 2.设置编码方式 - 在获取结果前设置
- 3、获取请求结果
- 1):获取请求结果对应的文本数据 - 爬网页
- 2):获取二进制格式的强求结果 - 视频、音频、图片
- 3):获取请求结果json转换的结果 - 请求对象是json接口数据
import requests
# 1、请求网络数据 requests.get(请求地址)
response=requests.get('https://cd.zu.ke.com/zufang')
# 2.设置编码方式 - 在获取结果前设置
# response.encoding='网页的编码方式'
# 3、获取请求结果
# 1):获取请求结果对应的文本数据 - 爬网页
print(response.text)
# 1):获取请求结果对应的文本数据 - 爬网页
print(response.text)
# 2):获取二进制格式的强求结果 - 视频、音频、图片
print(response.content)
# 1.获取图片数据
response=requests.get('http://m10.music.126.net/20230327165647/f8837d6198c3c21603c8fdc35d788fe5/ymusic/5b06/2890/55c0/b4201bcf1f6135427ad0cf1b667c6451.mp3')
result=response.content
# 2.保存图片数据到本地文件
with open(r'files\m.mp3','wb') as f:
f.write(result)
# 3):获取请求结果json转换的结果 - 请求对象是json接口数据
response1=requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js')
print(response1.json())
三、addheader
1、添加header目的:
- 1.浏览器伪装(user-agent)
- 2.免密登录(cookie)
- 3.设置代理(proxies)
- user-agent信息可以不对应,
浏览器伪装(user-agent)
headers={
'cookie':'ll="118318"; bid=PcxKFIKATDY; __utmc=30149280; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1679901415%2C%22https%3A%2F%2Fwww.baidu.com%2F%22%5D; _pk_id.100001.4cf6=b0c27c1739a58494.1679901415.1.1679901415.1679901415.; __utma=223695111.268866721.1679901415.1679901415.1679901415.1; __utmc=223695111; __utmz=223695111.1679901415.1.1.utmcsr=baidu.com|utmccn=(referral)|utmcmd=referral|utmcct=/; ap_v=0,6.0; __utma=30149280.1694340316.1679901366.1679901366.1679904140.2; __utmz=30149280.1679904140.2.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmt=1; __utmb=30149280.1.10.1679904140',
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
}
response=requests.get('https://movie.douban.com/top250',headers=headers)
# 2、获取结果
result=response.text
print(result)