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 ...
随机推荐
- pycharm mysql数据源配置、SQL方言配置
会发现有提示,看着不爽,但不影响运行程序, 这里提示没有配置数据源,现在配置MYSQL数据源 然后看到右边Database选项卡,点击 然后可能会出现网络防火墙提示,选择全部允许,之后可能会在pych ...
- HydroCMS-用ueditor无法实现word中图片转存的问题
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...
- jsp实现浏览器大文件分片上传
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...
- python-解决pip安装速度慢的问题--豆瓣镜像
https://www.cnblogs.com/ZhangRuoXu/p/6370107.html https://blog.csdn.net/tianguiyuyu/article/details/ ...
- mitmproxy修改二级代理
第一步 mitmweb --mode upstream:http://114.240.101.242:5672 -s server.py 第二步 def request(self, flow: mit ...
- centos7下面装fastdfs
首先我完全是按照这个链接上面来的,其中也算有点小错https://blog.csdn.net/ty5546/article/details/79245648 环境准备编译环境 yum install ...
- linux编辑文本(vim)时跳转到最后一行和第一行及相关指令
vi操作 1.跳到文本的最后一行:按“G”,即“shift+g” 2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”. 3.跳到第一行的第一个字符:先按 ...
- fastcgi代理
一.fastcgi代理 1.示意图 2.fastcgi 代理配置语法 a.设置PHP服务代理地址 Syntax: fastcgi_pass address; Default: — Context: l ...
- ssy-publish
github地址: https://github.com/shangyueyue/ssy-publish 一.安装 npm install ssy-publish -D 二.在process.cwd( ...
- jQuery九类选择器
目的:通过选择器,能定位web页面(HTML/JSP/XML)中的任何标签, 注意:项目中,通常是多种选择器一起使用 基本选择器 <html> <head> <meta ...