5、request的使用

"""
输入一个网址,浏览器会等待服务器返回
服务器返回东西之后,浏览器会将服务器给的东西进行展示

请求:你向服务器发送一条消息,要东西
响应:服务器返回一些消息,返回东西
渲染:浏览器会把服务器返回的消息,展示给用户

数据是在服务器里变成页面源代码的
第一种请求方式:
    如果页面源代码里有 数据 ,服务器渲染数据成页面源代码的
        resp.read() => 页面源代码 => 提纯 => 保存
第二种请求方式:
    不是所有的网站都是把数据直接加载到页面源代码上的
    输入网址后,服务器返回一个页面源代码,可能会缺少一些数据
    在一个特殊的情况下,会触发一个新的请求,
    这个新的请求专门用来请求数据
    服务器返回数据后,浏览器执行一些脚本,把数据渲染到浏览器上给用户使用

Elements(当前页面状况代码) 并不等于页面源代码
"""
# 导入request模块
import requests    # requests 的核心功能就是发送请求

url = "https://www.sogou.com/web?query=python"

# 发送请求
resp = requests.get(url)    # get请求
# requests.post()     # post请求

# 获得状态码
print(resp)

# 获得网面源代码
page_resp = resp.text
print(page_resp)   
# 仔细看看是不是获得的数据与期望得到的不一样?
# 是因为被网页识别出我们的访问方式有问题
print(resp.request.headers)    # 查看自己的请求头,很容易就发现自己是通过python访问,所以被浏览器拒绝了。

# 开始修改请求头,首先要获得请求头(具体下面有图片)
headers = {  # 下面的内容不要手写, 复制粘贴最安全
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36"
}
resp = requests.get(url, headers=headers)
# 拿到页面源代码
page_resp = resp.text
print(page_resp)    # 终于可以获得自己想要的数据了把

 

 

 

posted @ 2022-11-05 09:29  python初学中  阅读(97)  评论(0)    收藏  举报