0
点赞
收藏
分享

微信扫一扫

爬虫里的requests用法讲解

醉倾城1 2022-02-05 阅读 159

爬虫里的requests用法讲解

requests模块的编码流程

操作步骤

  1. 指定url

  2. 发出请求

  3. 获取响应数据

  4. 持久化存储

例:

import requests  #首先导入requests模块
url="https://www.sogou.com"
response=request.get(url=url)
page_text=response.text
with open("./sogou.html","w",encoding="utf-8") as fp:
    fp.write(page_test)
    

requests模块的作用:模拟浏览器发请求

UA伪装

UA:User-agent (请求载体的身份标识)

UA伪装:门户网站的服务器会检测对应请求的载体身份表示,所以要对爬虫进行伪装,使爬虫更像是一个浏览器发出的请求

例:

import requests
url = "https://www.sogou.com/web" 
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38"
kw= = input("enter a word:")
param = {
    "query":kw
}
#对指定的url发出请求,对应的url是对应参数的,所有参数均均存放在param中
response = requests.get(url=url,params=param,headers=header)
​

get请求与post请求

提交的数据形式

get请求,提交的数据会附在url之后,以?分割ul和传输的数据,多个参数用&连接,例:login?name=hc&pwd=123456 post请求,提交的数据会放置在http包的包体<request-body>中。 get请求提交的数据会在地址栏中显示出来,而post请求的地址栏中不会显示出数据。

传输数据的大小

http协议没有对传输数据的大小进行限制,http协议规范也没有对url长度进行限制,而实际的开发中get请求会受到url长度的限制,例入IE浏览器url长度限制是2048字节,其他浏览器的限制取决于操作系统以及服务器的支持;post请求会受到提交数据大小的限制。

用法

requests.post()用法与requests.get()完全一致,特殊的是requests.post()有一个data参数,用来存放请求体数据,而requsts.post()用params存放数据

举报

相关推荐

0 条评论