当前位置: 首页 > news >正文

post请求(爬取肯德基基本分布)

目录

(一)post请求

 (二)爬取

1.先定义一个爬取页数范围的主函数

 2.请求对象的定制

3 .获取网页源码

 4.下载数据

结果: 


 

(一)post请求

特点:

  1. 用于向服务器提交数据,以请求服务器进行特定的处理。
  2. 通常会导致服务器端状态的改变,比如向服务器提交表单数据进行注册、登录、发表评论等操作。
  3. 可以提交较大的数据量,因为数据不是放在 URL 中,而是放在请求体中

post请求与get请求的区别

  1. 数据位置:GET 请求的数据放在 URL 中,而 POST 请求的数据放在请求体中。
  2. 安全性:POST 请求相对 GET 请求更安全,因为数据不在 URL 中显示,不容易被第三方看到。
  3. 缓存:GET 请求可以被缓存,而 POST 请求通常不被缓存。
  4. 幂等性:GET 请求是幂等的,即多次相同的请求会产生相同的结果;而 POST 请求一般不是幂等的,多次提交可能会产生不同的结果。

 (二)爬取

1.先定义一个爬取页数范围的主函数

if __name__ == '__main__':start_page = int(input("请输入起始页码:"))end_page = int(input("请输入结束页码:"))for page in range(start_page, end_page + 1):

 2.请求对象的定制

def create_request(page):headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"}data = {"cname": "北京","pid" : " ","pageIndex" : page,"pageSize": "10"}
#因为要与url链接必须要进行编码(有中文)data = urllib.parse.urlencode(data).encode("utf-8")url = 'https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'request = urllib.request.Request(url=url,headers=headers,data = data)return  request
  1.  headers是设置请求头
  2. data为网页中的数据
  3. 因为要与url链接data必须要进行编码(有中文)

3 .获取网页源码

def get_content(request):response = urllib.request.urlopen(request)content = response.read().decode('utf-8')return content

 4.下载数据

def down_load(content,page):with open("kfc_" + str(page) + ".json","w",encoding="utf-8") as fp:fp.write(content)
  1.  page为int型字符  所有拼接时要转换为字符型

结果: 

 


努力中。。。


http://www.mrgr.cn/news/53725.html

相关文章:

  • JavaCV 图像灰度化处理
  • leetcode day1 910+16
  • 1.ubuntu下安装noetic
  • MIT-OC Electrochemical Energy Systems 1-2
  • ubuntu22.04 桌面系统怎么搭建一个esp-idf的项目,搭建开发环境
  • 【ios】在 SwiftUI 中实现可随时调用的加载框
  • LeetCode-3192 使二进制数组全部等于1的最少操作次数Ⅱ
  • Sentinel 介绍
  • access中怎么分割分别获取一下图中的值
  • 数据仓库-维度设计
  • 鸿蒙网络编程系列31-使用RCP调用OpenAI接口实现智能助手
  • 使用Docker启动的Redis容器使用的配置文件路径等问题以及Python使用clickhouse_driver操作clickhouse数据库
  • 全网爆火的排队免单模式究竟是如何运作?
  • LabVIEW提高开发效率技巧----用户权限控制
  • Linux权限说明
  • 多种方式实现安全帽佩戴检测
  • rel-例行性工作
  • Redis JSON介绍
  • 【Java语言】逻辑控制
  • 使用big.js处理js精度缺失的问题
  • Json-Rpc框架(框架设计 —— 整体设计框架 | 抽象层 | 具象层 | 业务层)
  • 【LeetCode:1160. 拼写单词 + 哈希表】
  • 【Canvas与艺术】八瓣点心包裹之三
  • Worker线程的使用
  • 【贪心算法】(第三篇)
  • ECCV‘24 | WTConv:小参数大感受野,基于小波变换的新型卷积