首页 > 其他分享 >02. request模块

02. request模块

时间:2023-10-07 19:46:35浏览次数:27  
标签:02 __ 请求 URL request json 模块 requests name

一、什么是request模块

  requests 模块是基于代码实现发送网络请求。该模块的作用是模拟浏览器发请求。Python 中默认不带有 requests 模块,我们可以通过 pip 来安装。

pip install requests

二、request模块的基本使用

2.1、什么是UA伪装

  UA 检测 是指门户网站的服务器会检测请求对应请求的身份标识,如果检测到请求的载体标识为某一款浏览器,说明该请求是一个正常的请求(用户通过浏览器发起的请求)。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求为不正常的请求(爬虫程序发起的请求),则服务器很有很能拒绝该次请求。
  因此,我们需要将爬虫程序对应的请求载体伪装成某一款浏览器,这就是 UA 伪装

2.2、requests模块发送GET请求

import requests

if __name__ == "__main__":
    # 1.指定URL
    url = "https://www.sogou.com/web"

    # 处理URL携带的参数:封装到字典中
    kw = input("enter a key word:")
    param = {
        'query': kw
    }

    # UA:User-Ageng(请求载体的身份标识)
    # UA伪装:将对应的User-Agent封装到一个字典中
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.43",
    }

    # 2.发起请求,get()方法会返回一个响应对象
    # 对指定的URL发起的请求对应的URL是携带参数的,并且请求过程中处理了参数
    response = requests.get(url=url, params=param, headers=headers)

    # 3.获取响应数据,text返回的是字符串形式的响应数据
    page_text = response.text
    print(type(page_text))

    # 4.持久化存储
    file_name = f"{kw}.html"
    with open(file_name, "w", encoding="utf-8") as f:
        f.write(page_text)

    print(f"{file_name}保存成功")

2.2、requests模块发送POST请求

import requests
import json

if __name__ == "__main__":
    # 1.指定URL
    url = "https://fanyi.baidu.com/sug"

    # 处理URL携带的参数:封装到字典中
    word = input("enter a key word:")
    data = {
        'kw': word
    }

    # UA:User-Ageng(请求载体的身份标识)
    # UA伪装:将对应的User-Agent封装到一个字典中
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.43",
    }

    # 2.发起请求,post()方法会返回一个响应对象
    # 对指定的URL发起的请求对应的URL是携带参数的,并且请求过程中处理了参数
    response = requests.post(url=url, data=data, headers=headers)

    # 3.获取响应数据,json()返回的是对象
    # 如果确认响应数据是json类型的,才可以使用json()方法返回
    dict_obj = response.json()
    print(type(dict_obj))

    # 4.持久化存储
    file_name = f"{word}.json"
    with open(file_name, mode="w", encoding="utf-8") as f:
        json.dump(dict_obj, fp=f, ensure_ascii=False)

    print(f"{file_name}保存成功")

标签:02,__,请求,URL,request,json,模块,requests,name
From: https://www.cnblogs.com/kurome/p/17747293.html

相关文章

  • 【GJOI 2023.10.6 T2】 亿只只因的回家路
    亿只只因的回家路题意:给出一个\(n\)点\(m\)边的无向图,每条边有长度\(v_i\),有\(k\)只小鸡,第\(i\)只小鸡在\(id_i\)号节点,鸡妈妈在\(1\)号点,现鸡妈妈要接所有的小鸡,小鸡与鸡妈妈的速度为\(1\),问最短多久鸡妈妈才能接到所有的小鸡,\(n\le10^5,k\le2\times10^......
  • day02
    表格标签-显示数据基本组成:table、tr-行、td-单元格没有列的概念突出表头单元格th-加粗居中表格属性—css在table标签内alignleft/center/right元素对齐方式border1或""是否边框cellpadding像素值单元格与其内容间的空白cellspacing像素值单元格间的......
  • 2023年10月7日模拟赛复盘
    题目列表T1Karma知识点:贪心、逆序对T2Desire知识点:树上差分、组合数T3Courage知识点:树上DPT4Innocent知识点:tarjan求强连通分量,有负权最短路复盘2023年10月7日记:第一題穩拿,後面部分分打得非常糟糕,死磕一道題磕不出來的嚴重後果,,!\(\color{Gray}{p.s.就是喜......
  • 周赛 Round 14 2023.10.3
    内部比赛链接:周赛14A.修改序列modify考虑且最小值和最大值之差最多为\(1\),那么最终序列肯定呈均分状态。又因为最终序列总和不变,则可以算出均分状态下的每一个值。然后每个数\(A_i\)则变成距离它最近的最终序列值就行。B.表示法knuth模拟题,注意需要在除了前缀ten之......
  • LY1371 [ 20231007 NOIP 模拟赛 T0 ] 十一之争
    题意给定一个长度为\(n\)的数字串\(s\)和只包含yo的字符串\(t\),yoimiya会和oimiya玩\(n\)轮游戏,初始有一个数字串\(x\)为\(0\),每次:如果\(t_i\)是y则是yoimiya操作,如果是o则是oimiya操作。每次操作:将\(s_i\)或者\(0\)加入\(x\)的末尾。如果最......
  • 2023-2024-1 20231306《计算机基础与程序设计》第二周学习总结
    这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第二周作业这个作业的目标数字化、信息安全、自学教材计算机科学概论第1章和《C语言程序设计》第1章并完成云班课测试作业正文https://i.cnblogs.co......
  • 腾讯TDSQL接口未授权访问信息泄露(CVE-2023-42387)
    腾讯TDSQL接口未授权访问信息泄露CVE-2023-42387漏洞地址:http://tdsql-xxxxxxx.com/tdsqlpcloud/index.php/api/install/get_db_info漏洞描述:tdsql赤兔管理平台,api接口存在未授权返回数据库明文配置信息。漏洞详情:代码审计1,访问上述接口。2,得到明文账号密码,登录数据库。漏洞版本......
  • 背单词 首字母 2023年10月
    2023-10-07tspusmspgotedpttar,slay,pilgrim,utmost,satirical,misapprehension,scorn,paddle,groom,occasion,tuberculosis,exclamation,drum,pager,turnip2023-10-06cscaffhdphsciamcircus,syndrome,claw,administrate,foam,fretful,harry,drugstore,pe......
  • 英语背单词 专四词汇 2023年10月 ChatGPT
    2023-10-072023-10-062023-10-052023-10-042023-10-032023-10-022023-10-01Explainthemeaningofthefollowingwordsalongwithindexandphoneticsymbol:lighter,stool,submission,motorway,falter,gipsy,confrontation,surgical,ripple,ratio,shillin......
  • 2023-2024-1 学号20231329 《计算机基础与程序设计》第2周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业的要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标计算机科学概论第1章并完成云班课测试《C语言程序设计》第1章并完成云班课测试作业正......