1、算法框架解释
针对这个案例,现在对爬虫的基础使用做总结如下:
1、算法框架
(1)设定传入参数
~url:
当前整个页面的url:当前页面的网址
当前页面某个局部的url:打开检查
~data:需要爬取数据的关键字,即搜索内容
~param:需要获取哪些(类型)的数据,即数据类型
~headers:UA伪装
(2)得到get/post请求响应
根据"检查"结果进行判断:
get请求:response=requests.get(url=**,data=**,param=**,headers=**)
post请求:response=requests.post(url=**,data=**,param=**,headers=**)
(3)将得到的请求响应json化数据
此处以request.get/post请求数据为dict为例:
dict_obj=response.json() #在这里,你得到的其实是一个python对象,也就是python的字典
(4)持久化存储
~得到存储地址和修改权限
fp=open("目录",'w',encoding="UTF-8)
~将python对象编码成Json字符串>>格式转化>>python(dict)------>json
json.dump(返回的json数据>>dict_obj,fp=存储地址>>fp,ensure_ascii=False)
~结束
2、代码解析
python
import requests
import json
"""
"""
if __name__ == "__main__":
print("开始爬取")
# (1)
post_url = 'https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
post_data = {
'kw': '上海'
}
post_param = {
"cname": "",
"pid": "",
"keyword": "上海",
"pageIndex": "1",
"pageSize": "10"
}
post_header = {
"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/119.0.0.0 Mobile Safari/537.36"
}
# (2)
response = requests.post(url=post_url, data=post_data, params=post_param, headers=post_header)
# (3)
dict_obj = response.json()
# print(type(dict_obj))
# (4)
fp = open('./html/KenDeJi.json', 'w', encoding='UTF-8')
json.dump(dict_obj, fp=fp, ensure_ascii=False)
print("over")