首页 > 编程语言 >Python爬取任意城市肯德基门店信息(json数据反序列化、提取数据、写入CSV)

Python爬取任意城市肯德基门店信息(json数据反序列化、提取数据、写入CSV)

时间:2022-09-20 14:47:05浏览次数:73  
标签:csv CSV Python writer json 餐厅 序列化 data

本案关键内容点:json数据反序列化、提取数据、写入CSV

创建csv,写入表头数据,脚本同目录下会创建名称为book的csv文件,且第一行插入表头内容

 

import csv

f = open('book.csv',mode='a',encoding='utf-8',newline='') #表头 csv_writer = csv.DictWriter(f,fieldnames=['餐厅名称','餐厅地址','详情']) csv_writer.writeheader() #表单数据

 

 

 

 

返回结果序列化,将对象转化为可以传输、储存的数据。下图为请求后返回的数据,需要反序列化后才可以提取具体参数值

 

 

    response = requests.post(url=url, params=params, headers=headers, data=data)
    json_data = response.json() #将结果进行反序列化 将对象转化为可以传输、储存的数据

分离、提取数据

    for i in json_data['Table1']:
        name = i['storeName']
        address = i['addressDetail']
        services = i['pro']
        print(name,address,services)

将提取的数据,逐行写入到CSV中

 

        dict = {
            '餐厅名称':name+'餐厅',
            '餐厅地址':address,
            '详情':services
        }
        csv_writer.writerow(dict)

全部脚本及执行后表单内容

import requests
import csv
 
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'}
 
f = open('book.csv',mode='a',encoding='utf-8',newline='')
#表头
csv_writer = csv.DictWriter(f,fieldnames=['餐厅名称','餐厅地址','详情'])
csv_writer.writeheader() 
#表单数据
for i in range(1,11):
    data = {
        'cname': '',
        'pid': '',
        'keyword': '长沙',#这里输入城市信息
        'pageIndex': f'{i}',
        'pageSize': '10',
    }
#请求字符串
    params = {'op':'keyword'}
 
 
    response = requests.post(url=url, params=params, headers=headers, data=data)
    json_data = response.json() #将结果进行反序列化 将对象转化为可以传输、储存的数据
 
    for i in json_data['Table1']:
        name = i['storeName']
        address = i['addressDetail']
        services = i['pro']
        print(name,address,services)
 
        dict = {
            '餐厅名称':name+'餐厅',
            '餐厅地址':address,
            '详情':services
        }
        csv_writer.writerow(dict)

 

标签:csv,CSV,Python,writer,json,餐厅,序列化,data
From: https://www.cnblogs.com/becks/p/16710968.html

相关文章

  • python-命令行参数处理 getopt模块详解
    有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Python里,命令行的参数和C语言很类似(因为标准Python是用C语言实......
  • Python读取文件夹按数字排序
    python中os.listdir()方法用于返回指定的文件夹包含的文件或文件夹的名字的列表importospath="../data/materials/test/"path_list=os.listdir(path)print(path......
  • python-接口自动化测试-基础知识(一)
    Python接口自动化测试理论知识以及框架源码一、什么是接口测试、为什么要做接口测试1、什么是接口测试接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测......
  • python机器学习(第一章 Python机器学习基础)
    第一章Python机器学习基础基础:Python官网:https://www.python.org/doc/;历史版本下载与维护信息:https://www.python.org/downloads/Anaconda官网:https://www.anacond......
  • Python-getopt函数使用
    getopt函数,主要目的就是对命令行参数进行解析。让你的脚本灵活性更强,可以针对性选择性的进行数据的处理和总结。>>opts,args=getopt.getopt(sys.argv[1:],'c:d:',['......
  • 在 Python 中使用数据创建艺术字
    在Python中使用数据创建艺术字_打破常规——一个快速而有创意的项目,使用python最流行的数据可视化工具来创建创意艺术字。_Fig.1:Finaleffectofthegenerat......
  • flask升序降序,分页,序列化器
    classUserInfoView(Resource):#@marshal_with(field)defget(self):#daming=User('daming',40,None)#xiaoming=User('xiaoming',16,damin......
  • python执行windows远程解压文件命令
    由于公司网络限制,业务人员反馈在本地解压远程文件夹下面的压缩包很慢,网络上也不能修改其它权限,所以想通过python实现在本地执行远程命令解压远程文件importwinrmimpor......
  • Python中使用pyyaml对yaml文件进行读写删操作
    安装库pipinstallpyyaml读取yaml/yam格式的文件defget_yaml(filepath)->list:""":paramfilepath:文件路径:return:传入数据的列表"""......
  • python-赋值、浅拷贝、深拷贝的区别
    Python中有6个标准的数据类型,它们又分为可变对象和不可变对象不可变对象:Number(数字)、String(字符串)、Tuple(元组)可变对象:List(列表)、Dictionary(字典)、Set(集合)可变对象是指......