基于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请求的更多相关文章

  1. python 爬虫 基于requests模块发起ajax的get请求

    基于requests模块发起ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 用抓包工具捉取 使用ajax加载页面的请求 鼠标往下 ...

  2. python 爬虫 基于requests模块的get请求

    需求:爬取搜狗首页的页面数据 import requests # 1.指定url url = 'https://www.sogou.com/' # 2.发起get请求:get方法会返回请求成功的响应对 ...

  3. Python爬虫之requests模块(1)

    一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...

  4. python爬虫值requests模块

    - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...

  5. 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块

    孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...

  6. Python爬虫练习(requests模块)

    Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...

  7. Python爬虫之requests模块(2)

    一.今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 二.回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 三. ...

  8. Python 爬虫二 requests模块

    requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...

  9. Python爬虫(requests模块)

     Requests是唯一的一个非转基因的Python HTTP库,人类可以安全享用. Requests基础学习 使用方法: 1.导入Requests模块: import requests 2.尝试用g ...

随机推荐

  1. pycharm mysql数据源配置、SQL方言配置

    会发现有提示,看着不爽,但不影响运行程序, 这里提示没有配置数据源,现在配置MYSQL数据源 然后看到右边Database选项卡,点击 然后可能会出现网络防火墙提示,选择全部允许,之后可能会在pych ...

  2. HydroCMS-用ueditor无法实现word中图片转存的问题

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...

  3. jsp实现浏览器大文件分片上传

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...

  4. python-解决pip安装速度慢的问题--豆瓣镜像

    https://www.cnblogs.com/ZhangRuoXu/p/6370107.html https://blog.csdn.net/tianguiyuyu/article/details/ ...

  5. mitmproxy修改二级代理

    第一步 mitmweb --mode upstream:http://114.240.101.242:5672 -s server.py 第二步 def request(self, flow: mit ...

  6. centos7下面装fastdfs

    首先我完全是按照这个链接上面来的,其中也算有点小错https://blog.csdn.net/ty5546/article/details/79245648 环境准备编译环境 yum install ...

  7. linux编辑文本(vim)时跳转到最后一行和第一行及相关指令

    vi操作 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”. 3.跳到第一行的第一个字符:先按 ...

  8. fastcgi代理

    一.fastcgi代理 1.示意图 2.fastcgi 代理配置语法 a.设置PHP服务代理地址 Syntax: fastcgi_pass address; Default: — Context: l ...

  9. ssy-publish

    github地址: https://github.com/shangyueyue/ssy-publish 一.安装 npm install ssy-publish -D 二.在process.cwd( ...

  10. jQuery九类选择器

    目的:通过选择器,能定位web页面(HTML/JSP/XML)中的任何标签, 注意:项目中,通常是多种选择器一起使用 基本选择器 <html> <head> <meta ...