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、代码解析
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")