Python 爬虫学习笔记(五(2))urllib POST请求获取KFC门店位置信息
目标是爬取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即可解决冲突。
总结
- 与上一篇文章提到的GET请求很相似,都属于ajax的get和post请求
- POST请求的参数data需要编码为utf-8格式
- 打开文件的时候也要规定打开的编码格式encoding=‘utf-8’
- CTRL + ALT + L可以让json文件更规整
Python 爬虫学习笔记(五(2))urllib POST请求获取KFC门店位置信息相关推荐
- Python爬虫学习笔记-第三课(网络请求模块下)
网络请求模块下 1. urllib-get案例 1.1 代码需求:爬取贴吧数据 1.2 代码思路 1.3 代码实现 2. urllib-post案例 3. requests模块简介 3.1 get案例 ...
- python爬虫学习笔记3.2-urllib和request练习
python爬虫学习笔记3.2-urllib和request练习 一.urllib练习 1.百度贴吧案例 需求 分析 手动测试查询流程 观察页面 分析特殊部分 https://tieba.baidu. ...
- python爬虫学习笔记 1.9 (Handler处理器 和 自定义Opener)
python爬虫学习笔记 1.1(通用爬虫和聚焦爬虫) python爬虫学习笔记 1.2 ( HTTP和HTTPS ) python爬虫学习笔记 1.3 str和bytes的区别 python爬虫学习 ...
- python爬虫学习笔记 3.9 (了解参考:训练Tesseract)
python爬虫学习笔记 3.9 (了解参考:训练Tesseract) 参考阅读:训练Tesseract 要使用 Tesseract 的功能,比如后面的示例中训练程序识别字母,要先在系统中设置一 个新 ...
- Python爬虫学习笔记 -- 爬取糗事百科
Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...
- python爬虫学习笔记2模拟登录与数据库
前言 为了加入学校里面一个技术小组,我接受了写一个爬取学校网站通知公告的任务.这个任务比以前写的爬虫更难的地方在于,需要模拟登录才能获得页面,以及将得到的数据存入数据库. 本文按照日期来记录我完成任务 ...
- 【Python爬虫学习笔记3】requests库
在上一篇中学习了urllib库的基本使用,通过它我们可以完成爬虫中发送请求和处理响应的大部分功能,但在实际使用中多少会很繁琐,比如处理Cookie时需要创建handler和opener对象.正因为如此 ...
- Python爬虫学习笔记总结(一)
〇. python 基础 先放上python 3 的官方文档:https://docs.python.org/3/ (看文档是个好习惯) 关于python 3 基础语法方面的东西,网上有很多,大家可以 ...
- 一入爬虫深似海,总结python爬虫学习笔记!
正文 〇. python 基础 先放上python 3 的官方文档:https://docs.python.org/3/ (看文档是个好习惯) 关于python 3 基础语法方面的东西,网上有很多,大 ...
最新文章
- C# 对应 Oracle 存储过程 的 SYS_REFCURSOR 应该 传入什么类型的参数?
- gateway动态路由_spring-cloud-gateway简介
- MQTT protocol level的处理
- 兵家必争之地!爱尔兰是如何成为物联网的先锋?
- 【CodeForces - 558C】Amr and Chemistry(位运算,bfs,计数,思维,tricks)
- react apollo_2020年的React + Apollo教程(真实示例)
- 任务47:Identity MVC:ReturnUrl实现
- 数据中心高速需求 推动光通信迈向100Gbps
- 面向对象的关键技术(多态、接口、抽象)
- 苹果mac视频编辑和制作软件:Premiere Pro
- 使用MATLAB计算切比雪夫多项式系数
- C#几种读取文件的方式
- 【工业互联网】余晓晖:工业互联网发展态势与展望
- Servlet 原理
- 常用搜索引擎链接及参数
- 《自然语言处理实践——聊天机器人技术原理与应用》(王昊奋)简要笔记(全)
- IntelliJ IDEA怎么创建package包下面的子包
- 统计元音字母——输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。
- maven依赖中部分依赖出现深灰色可能的解决方案
- excel学习——相对引用、绝对引用、混合引用