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

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")
相关推荐
ego.iblacat3 分钟前
Python 连接 MySQL 数据库
数据库·python·mysql
ZC跨境爬虫14 分钟前
【Scrapy实战避坑】5sing网站爬虫从0到1,踩遍动态渲染、正则匹配全坑(附完整解决方案)
爬虫·scrapy
humors2211 小时前
各厂商工具包网址
java·数据库·python·华为·sdk·苹果·工具包
pzx_0011 小时前
【优化器】 随机梯度下降 SGD 详解
人工智能·python·算法
大邳草民1 小时前
Python 中 global 与 nonlocal 的语义与机制
开发语言·笔记·python
程序员小远2 小时前
软件测试用例总结
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
2501_948114242 小时前
技术解码:Gemini交互式模拟API与高负载网关的选型逻辑
人工智能·python·ai
AC赳赳老秦2 小时前
OpenClaw text-translate技能:多语言批量翻译,解决跨境工作沟通难题
大数据·运维·数据库·人工智能·python·deepseek·openclaw
JaydenAI2 小时前
[Python编程思想与技巧-01]我所理解的Python元模型
python·元宇宙·元类·元模型
清水白石0082 小时前
《Python 架构师的自动化哲学:从基础语法到企业级作业调度系统与 Airflow 止损实战》
数据库·python·自动化