目标是爬取KFC官网,某地哪里有门店,前n页数据

选择城市北京,F12检查页面,发现就一个有用的接口,确实是我们需要的。不断观察接口发现Form Data中有个参数是pageIndex,是几就代表了第几页的门店信息。


完整代码

参数前面加了_是为了区分形参和实参

import urllib.request
import urllib.parsedef create_request(_page):base_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'data = {'cname': '北京','pid': '','pageIndex': _page,'pageSize': 10}headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/98.0.4758.102 Safari/537.36 "}data = urllib.parse.urlencode(data).encode('utf-8')_request = urllib.request.Request(url=base_url, data=data, headers=headers)return _requestdef get_content(_request):res = urllib.request.urlopen(_request)_content = res.read().decode('utf-8')return _contentdef download(_page, _content):with open('kfc' + str(_page) + '.json', 'w', encoding='utf-8') as f:f.write(_content)if __name__ == '__main__':start_page = int(input('起始页面'))end_page = int(input('结束页面'))for page in range(start_page, end_page + 1):request = create_request(page)content = get_content(request)download(page, content)

运行程序,例如输入1和2。(不敢输入太大的数,怕被封IP)

稍等片刻后文件目录下出现了我们的下载文件,kfc1.json即第一页的10个门店信息。

小技巧,文件内容都在一行之中,按住CTRL + ALT + L可以规整格式。但要避免快捷键冲突,例如开着QQ会锁定QQ账号。。关闭QQ即可解决冲突。


总结

  1. 与上一篇文章提到的GET请求很相似,都属于ajax的get和post请求
  2. POST请求的参数data需要编码为utf-8格式
  3. 打开文件的时候也要规定打开的编码格式encoding=‘utf-8’
  4. CTRL + ALT + L可以让json文件更规整

Python 爬虫学习笔记(五(2))urllib POST请求获取KFC门店位置信息相关推荐

  1. Python爬虫学习笔记-第三课(网络请求模块下)

    网络请求模块下 1. urllib-get案例 1.1 代码需求:爬取贴吧数据 1.2 代码思路 1.3 代码实现 2. urllib-post案例 3. requests模块简介 3.1 get案例 ...

  2. python爬虫学习笔记3.2-urllib和request练习

    python爬虫学习笔记3.2-urllib和request练习 一.urllib练习 1.百度贴吧案例 需求 分析 手动测试查询流程 观察页面 分析特殊部分 https://tieba.baidu. ...

  3. python爬虫学习笔记 1.9 (Handler处理器 和 自定义Opener)

    python爬虫学习笔记 1.1(通用爬虫和聚焦爬虫) python爬虫学习笔记 1.2 ( HTTP和HTTPS ) python爬虫学习笔记 1.3 str和bytes的区别 python爬虫学习 ...

  4. python爬虫学习笔记 3.9 (了解参考:训练Tesseract)

    python爬虫学习笔记 3.9 (了解参考:训练Tesseract) 参考阅读:训练Tesseract 要使用 Tesseract 的功能,比如后面的示例中训练程序识别字母,要先在系统中设置一 个新 ...

  5. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  6. python爬虫学习笔记2模拟登录与数据库

    前言 为了加入学校里面一个技术小组,我接受了写一个爬取学校网站通知公告的任务.这个任务比以前写的爬虫更难的地方在于,需要模拟登录才能获得页面,以及将得到的数据存入数据库. 本文按照日期来记录我完成任务 ...

  7. 【Python爬虫学习笔记3】requests库

    在上一篇中学习了urllib库的基本使用,通过它我们可以完成爬虫中发送请求和处理响应的大部分功能,但在实际使用中多少会很繁琐,比如处理Cookie时需要创建handler和opener对象.正因为如此 ...

  8. Python爬虫学习笔记总结(一)

    〇. python 基础 先放上python 3 的官方文档:https://docs.python.org/3/ (看文档是个好习惯) 关于python 3 基础语法方面的东西,网上有很多,大家可以 ...

  9. 一入爬虫深似海,总结python爬虫学习笔记!

    正文 〇. python 基础 先放上python 3 的官方文档:https://docs.python.org/3/ (看文档是个好习惯) 关于python 3 基础语法方面的东西,网上有很多,大 ...

最新文章

  1. C# 对应 Oracle 存储过程 的 SYS_REFCURSOR 应该 传入什么类型的参数?
  2. gateway动态路由_spring-cloud-gateway简介
  3. MQTT protocol level的处理
  4. 兵家必争之地!爱尔兰是如何成为物联网的先锋?
  5. 【CodeForces - 558C】Amr and Chemistry(位运算,bfs,计数,思维,tricks)
  6. react apollo_2020年的React + Apollo教程(真实示例)
  7. 任务47:Identity MVC:ReturnUrl实现
  8. 数据中心高速需求 推动光通信迈向100Gbps
  9. 面向对象的关键技术(多态、接口、抽象)
  10. 苹果mac视频编辑和制作软件:Premiere Pro
  11. 使用MATLAB计算切比雪夫多项式系数
  12. C#几种读取文件的方式
  13. 【工业互联网】余晓晖:工业互联网发展态势与展望
  14. Servlet 原理
  15. 常用搜索引擎链接及参数
  16. 《自然语言处理实践——聊天机器人技术原理与应用》(王昊奋)简要笔记(全)
  17. IntelliJ IDEA怎么创建package包下面的子包
  18. 统计元音字母——输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。
  19. maven依赖中部分依赖出现深灰色可能的解决方案
  20. excel学习——相对引用、绝对引用、混合引用

热门文章

  1. Linux内核源码分析方法—程序员进阶必备
  2. 修改EXCHANGE默认的收发邮件大小是10M
  3. grr google
  4. c语言程序设计武汉大学出版社编程题答案,C语言及程序设计基础
  5. CSS如何使纯英文数字自动换行
  6. GNS3 配置Static p2p GRE over IPsec
  7. 食品批发销售必用的仓库进销存系统?
  8. MRPII/ERP软件系统的实现(转)
  9. nginx文件服务器判断文件是否存在,nginx try_files指令判断文件是否存在实例
  10. (转载)VoLTE简介