python 爬虫 基于requests模块发起ajax的post请求
基于requests模块发起ajax的post请求
需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定某个城市地点的餐厅数据
点击肯德基餐厅查询页面

输入北京点击查询是一个提交form表单,异步ajax的post请求,使用抓包工具抓取请求

基于ajax的POST请求携带的参数:
keyword参数是城市名,改变这个参数该请求的数据也会改变
pageIndex:第几页的数据值 ,例子:第一页
pageSize:表示一页获取几条数据,获取10条数据
可以调整这些参数,会针对响应数据变化

import requests
import json # 1指定ajax-post请求的url(通过抓包进行获取)
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword' # 处理post请求携带的参数(从抓包工具中获取)
data = {
'cname': '',
'pid': '',
'keyword': '北京',
'pageIndex': '',
'pageSize': ''
} # 自定义请求头信息,相关的头信息必须封装在字典结构中
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
} # 2.发起基于ajax的post请求
response = requests.post(url=url,data=data,headers=headers) #获取响应内容:响应内容为json串
data = response.text
data = json.loads(data)
for i in data["Table1"]:
print(i) '''
{'rownum': 11, 'storeName': '巴沟', 'addressDetail': '巴沟路2号北京华联万柳购物中心一层', 'pro': 'Wi-Fi,礼品卡,生日餐会', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 12, 'storeName': '北京站宝宸', 'addressDetail': '北京站街22号一层+二层', 'pro': '24小时,Wi-Fi,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 13, 'storeName': '欢乐谷', 'addressDetail': '南磨房乡小武基北路北京欢乐谷内欢乐时光区一层', 'pro': '礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 14, 'storeName': '亦庄沃尔玛', 'addressDetail': '经济技术开发区文化园东路6号北京经开汇展中心1-2层', 'pro': 'Wi-Fi,店内参观,礼品卡,生日餐会', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 15, 'storeName': '北京南站二', 'addressDetail': '北京南站候车大厅地下一层(快速进站口1)部分场地', 'pro': '礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 16, 'storeName': '北京站Select', 'addressDetail': '北京火车站候车大厅一层西侧原商务中心', 'pro': '精选店,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 17, 'storeName': '西客站内三', 'addressDetail': '莲花桥东路118号北京西客站候车大厅内2层第4营业厅及2层夹层回廊', 'pro': '礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 18, 'storeName': '通州北苑华联', 'addressDetail': '杨庄北里五十二号天时名苑小区十四号楼北京华联南侧一层', 'pro': 'Wi-Fi,店内参观,礼品卡,生日餐会', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 19, 'storeName': '日照银座餐厅', 'addressDetail': '北京路与泰安路交汇处银座商城一楼', 'pro': 'Wi-Fi,礼品卡,生日餐会', 'provinceName': '山东省', 'cityName': '日照市'}
{'rownum': 20, 'storeName': '荆州北京路', 'addressDetail': '沙区北京中路227号肯德基餐厅', 'pro': 'Wi-Fi,点唱机,礼品卡,生日餐会', 'provinceName': '湖北省', 'cityName': '荆州市'}
使用抓包工具抓取ajax异步请求所对应的url
python 爬虫 基于requests模块发起ajax的post请求的更多相关文章
- python 爬虫 基于requests模块发起ajax的get请求
基于requests模块发起ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 用抓包工具捉取 使用ajax加载页面的请求 鼠标往下 ...
- python 爬虫 基于requests模块的get请求
需求:爬取搜狗首页的页面数据 import requests # 1.指定url url = 'https://www.sogou.com/' # 2.发起get请求:get方法会返回请求成功的响应对 ...
- Python爬虫之requests模块(1)
一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...
- python爬虫值requests模块
- 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- Python爬虫练习(requests模块)
Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...
- Python爬虫之requests模块(2)
一.今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 二.回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 三. ...
- Python 爬虫二 requests模块
requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...
- Python爬虫(requests模块)
Requests是唯一的一个非转基因的Python HTTP库,人类可以安全享用. Requests基础学习 使用方法: 1.导入Requests模块: import requests 2.尝试用g ...
随机推荐
- python中重要的概念:类(class)
1.名词解释 类:类代表了具有相同特征的一类事物(人) 对象.实例:具体的某一个事物或者是人 实例化:将类变成对象的这么一个过程,即新建一个对象的过程,就是对类的一个实例化过程. 2.格式 函数定义: ...
- nginx 端口转发 (proxy_pass反向代理)
第一种(访问IP转发到IP+端口) server{ listen ; server_name 192.168.1.114; index index.php index.html index.htm; ...
- How To Fix soapUI JVM Maximum Heap Size (-Xmx) Error [Solution]
http://quicksoftwaretesting.com/soapui-jvm-heap-size-xmx-error/ -Xms128m -Xmx1000m -Dsoapui.properti ...
- 实体类 @TableName&@TableField&@Version
//指向表table_biao @TableName("table_biao)public class UserThirdLogin extends Model<UserThirdLo ...
- [Luogu] 维护序列
https://www.luogu.org/problemnew/show/P2023 线段树双懒标记下放 #include <bits/stdc++.h> using namespace ...
- IVIEW组件Table中加入EChart柱状图
展示图如下: 主要利用了render函数和updated()钩子函数进行数据填充与渲染. 1.在Table的Colums中加入 1 { 2 title: '比例图', 3 align: 'center ...
- D. Shortest Cycle(floyd最小环)
D. Shortest Cycle time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- Linux长格式文件属性介绍
长格式文件属性 查看长格式文件命令:ll (或ls -l) (1)-:文件类型 -:普通文件 d:目录 b:块设备文件(随机读取) c:字符设备文件(顺序读取) p:管道文件 s:Socket套接字文 ...
- From 7.29 To 8.4
From 7.29 To 8.4 大纲 英语按时背 做点思维题 可能还有时间学点东西, 这周我也不知道应该干什么 7.29 上午考试, 终于有一回不是自闭的考试了 题目比较简单, 就不说了 7.30 ...
- qt QTableView中嵌入复选框CheckBox 的四种方法总结
第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四种比较适合扩展,它除了可以嵌入复选框,还可以通过paint()绘制其它控件 ...