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

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")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/160418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DB2中实现数据字段的拼接(LISTAGG() 与 xml2clob、xmlagg)

DB2中实现数据字段拼接(LISTAGG 与 xml2clob、xmlagg) 1. 使用函数LISTAGG()1.1 同oracle实现方式1.2 DB2中使用LISTAGG()1.2.1 关于DB2版本1.2.2 数据准备1.2.3 代码实现 2 解决DB2中关于 LISTAGG() 超长问题2.1 使用xmlagg xmlelement2.2 将xml标签去…

数据结构与算法编程题11

已知两个链表A和B分别表示两个集合&#xff0c;其元素递增排列。 请设计算法求出A与B的交集&#xff0c;并存放于A链表中。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #defin…

【iOS】实现评论区展开效果

文章目录 前言实现行高自适应实现评论展开效果解决cell中的buttom的复用问题 前言 在知乎日报的评论区中&#xff0c;用到了Masonry行高自适应来实现评论的展开&#xff0c;这里设计许多控件的约束问题&#xff0c;当时困扰了笔者许久&#xff0c;特此撰写博客记录 实现行高自…

如何构建更简洁的前端架构?

目录 为什么需要前端架构&#xff1f; 那么&#xff0c;前端架构是什么样的呢&#xff1f; 使用了哪些层&#xff1f; 那么&#xff0c;这种架构会出什么问题呢&#xff1f; 我们应该如何避免这些错误&#xff1f; 哪些原则应适用于组件&#xff1f; Anti-Patterns 反模…

小程序存在优惠卷遍历,但是歪了

进入小程序&#xff0c;因为是一个小商城&#xff0c;所以照例先查看收货地址是否存在越权&#xff0c;以及能否未授权访问&#xff0c;但是发现不存在这些问题&#xff0c;所以去查看优惠卷 进入领券中心&#xff0c;点击领取优惠券时抓包 发现数据包&#xff0c;存在敏感参数…

数据库的级联删除

级联删除是指在数据库中删除一个对象时&#xff0c;与该对象有关的其他对象也被自动删除。在 Django 中&#xff0c;级联删除通常通过在模型中定义外键时使用 on_delete 参数来实现。以下是一些常见的 on_delete 选项&#xff1a; 1.models.CASCADE: 当关联的对象被删除时&…

CentOS 7 使用Fmt库

安装 fmt Git下载地址&#xff1a;https://github.com/fmtlib/fmt 步骤1&#xff1a;首先&#xff0c;你需要下载fmt的源代码。你可以从https://github.com/fmtlib/fmt或者源代码官方网站下载。并上传至/usr/local/source_code/ ​ 步骤2&#xff1a;下载完成后&#xff…

【Docker】Docker安装Nginx配置静态资源

1.下载镜像 2.创建nginx配置文件 3.创建nginx容器运行 4.配置nginx静态资源 1.下载镜像 Dockerhub官网&#xff1a;Docker docker pull nginx docker pull nginx下载最新版本 默认latest 下载指定版本docker pull nginx:xxx 2.创建nginx配置文件 启动容器之前要创建nginx…

怎么使用sentinel,以及所有的知识点

Sentinel是一个开源的流量控制和实时监控系统&#xff0c;主要用于保护企业级应用程序免受不良的请求。下面是使用Sentinel需要了解的知识点&#xff1a; 1. 什么是流量控制&#xff1f; 流量控制指的是限制应用程序的请求流量&#xff0c;防止过多的请求超出系统的承受范围。…

基于单片机停车场环境监测系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机停车场环境监测系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的停车场环境监测系统是一种利用单片机技术实现环境监测和数据处理的系统。它可以感知停车场的温湿…

Python (十一) 迭代器与生成器

迭代器 迭代器是访问集合元素的一种方式&#xff0c;可以记住遍历的位置的对象 迭代器有两个基本的方法&#xff1a;iter() 和 next() 字符串&#xff0c;列表或元组对象都可用于创建迭代器 字符串迭代 str1 Python str_iter iter(str1) print(next(str_iter)) print(next(st…

zip4j压缩使用总结

一、引入依赖 <dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>1.3.1</version></dependency>二、使用添加文件&#xff08;addFiles&#xff09;的方式生成压缩包 /*** Author wan…

蓝桥杯物联网_STM32L071_2_继电器控制

CubeMX配置&#xff1a; Function.c及Function.h&#xff1a; #include "Function.h" #include "gpio.h" void Function_LD5_ON(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); }void Function_LD5_OFF(void){HAL_GPIO_WritePin(LD5_…

HarmonyOS应用开发者认证题目满分指南

为了帮助大家快速的上手HarmonyOS应用程序开发&#xff0c;官方制作了一些免费的课程&#xff1a;HarmonyOS第一课。每个课程后面都有一些练习题&#xff0c;下面就是这些题目的满分答案。 【习题】运行Hello World工程 判断题 1.DevEco Studio是开发HarmonyOS应用的一站式集…

定时器如何计算触发频率?

定时器触发频率的计算公式为&#xff1a;定时器时钟频率/&#xff08;预分频系数*计数周期1&#xff09;。其中&#xff0c;定时器时钟频率是指定时器所连接的总线频率&#xff0c;预分频系数和计数周期需要根据具体的需求进行设置。预分频系数用于将总线频率分频&#xff0c;计…

Power Apps-下拉列表控件

插入一个下拉列表控件 设置值的两种方式 1.通过属性items写数组设置 2.通过连接数据表&#xff0c;先在右侧操作面板中选择项目中的数据表 再从Value中选择其中一列&#xff0c;下拉就可以选择该列全部行的值 但是这样会导致有很多重复的字段&#xff0c;所以可以在items属性里…

好用的博客评论系统 Valine 使用及避坑指南

评论系统&#xff0c;即网站的一个小功能&#xff0c;展示评论内容和用户输入框。开源免费的评论系统可不多&#xff0c;原来很火的"多说"评论系统都关闭了&#xff0c;而Disqus又是国外的访问受限。无意间发现了Valine&#xff0c;挺不错的&#xff0c;分享给大家。…

如何用cmd命令快速搭建FTP服务

环境&#xff1a; Win10专业版 问题描述&#xff1a; 如何用cmd命令快速搭建FTP服务 解决方案&#xff1a; 1.输入以下命令来安装IIS&#xff08;Internet Information Services&#xff09;&#xff1a; dism /online /enable-feature /featurename:IIS-FTPServer /all …

IDEA集成Git

一、配置Git忽略文件 例如&#xff1a;用eclipse创建的项目有其特定的文件&#xff0c;例如&#xff1a;.classpath,.project文件&#xff0c;而用IDEA创建的项目也有其特定的文件&#xff1a;.xml,.iml,.target,我们需要最好忽略他们。 为什么要忽略他们&#xff1f; 与项目…

从Github登录的双因子验证到基于时间戳的一次性密码:2FA、OTP与TOTP

Github于2023-03-09推出一项提高软件安全标准的措施&#xff0c;所有在Github上贡献过代码的开发人员在年底前必须完成 2FA&#xff08;Two-factory authentication&#xff0c;双因子认证&#xff09;。初听此事之时&#xff0c;不以为意&#xff0c;因为自己之前就知道双因子…