一、requests的简单应用

1.浏览器运行过程

1.1http请求的过程

浏览器在拿到域名对应的ip后,先向地址栏中的url发起请求,并获取响应.
在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应.
从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染.

1.2 需要注意的点

但是在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等)
浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样,是因为爬虫不具备渲染的能力
浏览器最终展示的结果是由多个url地址分别发送的多次请求对应的多次响应共同渲染的结果
所以在爬虫中,需要以发送请求的一个url地址对应的响应为准来进行数据的提取
知识点:理解 浏览器展示的结果可以由多次请求对应的多次响应共同渲染出来,而爬虫是一次请求对应一个响应

2.编码相关的问题

计算机不认得字符串,计算机认得二进制数据0和1.
编码的作用是让计算机认得字符串
常见编码
ASCII 英文码
GBK 中文码
Unicode 万国码

# 字符串变为二进制字符串 编码
str1 = 'Hello World'
# encode 进行编码 默认用的utf-8
# encoding  指定编码是什么
a = str1.encode(encoding='gbk')
print(a)
# 二进制字符串变为字符串  解码
b = a.decode(encoding='gbk')
print(b)
# 快捷键看源码 ctrl + 鼠标左键
# 文件写入  w 写入文本形式  wb(图片 音频 视频) 写入二进制  写中文加上encoding='utf-8'
with open('a.txt','w',encoding='utf-8') as f:
    f.write('1234')
with open('a.txt','wb',encoding='utf-8') as f:
    f.write(xxx.decode())    

3.requests模块介绍

安装模块

pip install requests

requesrs模块发送get请求

import requests
# 确定url
url = 'https://www.baidu.com/'
# 伪装自己 带上请求头
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# 调用requests方法 发送请求获取响应
res = requests.get(url,headers=headers)
# res.content 获取内容(二进制)
# 如果是文本数据就用res.content.decode() 报错了 用res.content.decode('gbk') 还报错了 就用res.text
# 我们可以在网页源码中搜索charset,尝试参考该编码字符集,注意存在不准确的情况
print(res.content.decode())

# # 响应的url
# print(res.url)
# # 请求头
# print(res.request.headers)
# # 响应头
# print(res.headers)
# # 状态码
# print(res.status_code)
# # 请求的cookie
# print(res.request._cookies)
# # 响应的cookie
# print(res.cookies)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值