首先打开肯德基餐厅主页,找到下面的餐厅查询点击进入。
通过检查打开浏览器自带抓包工具。点击搜索我们发现页面只有局部刷新。那么此时应该是ajax请求了。那么此时我们通过抓包工具XHR里面的请求。然后我们查看该url,请求为post,携带的参数Form-Data。content-type为text文本类型。了解这些必备参数之后,我们就可以进行爬取数据了。
通过调整 ‘keyword’: ‘’,
‘pageIndex’:’’,
‘pageSize’: ‘’,三个参数我们可以获取我们想要搜索的关键字,页面,页面长度。代码如下:
import requests
if __name__=="__main__":
url ="http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
param={
'cname':'',
'pid':'',
'keyword': '上海',
'pageIndex':'2',
'pageSize': '20',
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38'
}
response = requests.get(url=url, params=param, headers=headers)
page_text = response.text
print(page_text)
# step4:持久化存储
with open('./kendeji.txt', 'w', encoding="utf-8") as fp:
fp.write(page_text)
print("爬取数据结束")
通过对结果观察,这些数据符合json格式,可以使用[该网站]进行json校验格式化,来阅读。如图所示