针对这个案例,现在对爬虫的基础使用做总结如下:
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)
~结束
- 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")