二、爬虫-爬取肯德基在北京的店铺地址

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")
相关推荐
数据智能老司机10 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机10 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机10 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i10 小时前
drf初步梳理
python·django
每日AI新事件10 小时前
python的异步函数
python
这里有鱼汤12 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook21 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室21 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三1 天前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
用户2519162427111 天前
Python之语言特点
python