今天着重学习了requests的安装与使用,结合前面了解的HTTP相关知识跟着up主进行了部分实践,爬取了几个网站还挺有意思的,写个总结强化记忆。

Python超强爬虫8天速成(完整版)爬取各种网站数据实战案例_哔哩哔哩_bilibili

一.requests安装

        Way1:打开电脑终端cmd(windows+R)输入  pip install requests

                        (主包这里已经安装好了,成功后大概就会显示这个界面)

        Way2:直接在Pycharm里面安装(推荐,会方便一些)

         (找到项目下的python解释器Project--Python interpreter,点击左上角的加号添加安装包)

          (搜索requests点击安装即可,这里安装完成后会在上一张图中看到已经安了哪些)

二.requests使用

        在使用之前需要引入requests,即  import requests

import requests

# 基础 GET 请求
url = "https://api.example.com/data"  #输入目标网址
response = requests.get(url)

# 带查询参数的 GET 请求(推荐用 params 参数,自动处理编码)
params = {"key1": "value1", "key2": "value2"}
response = requests.get(url, params=params)

# 查看响应内容
print("状态码:", response.status_code)  # 200 表示成功
print("响应文本:", response.text)       # 字符串形式的响应内容
print("JSON 数据:", response.json())    # 若响应是 JSON,直接解析为字典(需确保返回格式正确)
print("响应头:", response.headers)      # 响应头信息

        使用response得到发送请求的反馈,需要注意的是requests.get()中一般只能有不超过2个参数,所以单独传入参数URL是可以的,但是在多参的情况下就需要使用”params=“,“headers=”等系统包装好的参数。

        在爬取一个网站之前,首先应该明确要爬取网站的地址,即URL;其次,由于很多网站有反爬机制,不能通过非浏览器的请求,所以我们需要利用把自己包装成浏览器发起请求,在目标网站右键点击“检查”,找到“User-agent”作为通行证。

这里简单展示一个实操案例——爬取百度翻译

代码展示:

import json
import requests
if __name__ == "__main__":
    URL = "https://fanyi.baidu.com/sug"

    headers = {
        "User-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0"
    }
    keyword = input("请输入单词:\n")
    parameter = {
        "kw" : keyword
    }
    response = requests.get(URL,params=parameter,headers=headers)
    text = response.json()
    print(text)

    file = open(keyword+'.json','w',encoding='utf-8')
    json.dump(text,file,ensure_ascii=False)

实现效果:

                         (目录会出现你输入的单词并以json的形式显示它的众多意思)

                       (打开是这样的,只有一行很难看,可以采用格式化工具,如下图)

                                 (就可以看到众多意思了,说明数据已经成功爬取)

右键点击“检查”   --     进入网络(network) --   选择Fetch/XHR   --   sug(可看见执行操作) --   标头(可找到‘请求URL’和‘User-agent’等信息)--    负载(可看到输入的单词,即是参数keyword)

把得到的各参数传入requests.get()中并接收,由于整个内容为json格式,我们可以直接用response.json(),并用dump()储存。

        各流程和步骤图都是我自己操作截的 众多数据资料由个人理解加借助网络各工具完成,有不足的地方请各位批评指正,欢迎大家一起学习交流!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐