Python如何爬取Json数据

发布时间:2020-12-08 09:52:09

来源:亿速云

阅读:58

作者:小新

这篇文章将为大家详细讲解有关Python如何爬取Json数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

该地址返回的响应内容为Json类型,其中红框标记的项即为AI流转率值:

实现代码如下:import requests

import json

import csv

# 爬虫地址

url = 'https://databank.yushanfang.com/api/ecapi?path=/databank/crowdFullLink/flowInfo&fromCrowdId=3312&beginTheDate=201810{}&endTheDate=201810{}&toCrowdIdList[0]=3312&toCrowdIdList[1]=3313&toCrowdIdList[2]=3314&toCrowdIdList[3]=3315'

# 携带cookie进行访问

headers = {

'Host':'databank.yushanfang.com',

'Referer':'https://databank.yushanfang.com/',

'Connection':'keep-alive',

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',

'Cookie':'_tb_token_=iNkDeJLdM3MgvKjhsfdW; bs_n_lang=zh_CN; cna=aaj1EViI7x0CATo9kTKvjzgS; ck2=072de851f1c02d5c7bac555f64c5c66d; c_token=c74594b486f8de731e2608cb9526a3f2; an=5YWo5qOJ5pe25Luj5a6Y5pa55peX6Iiw5bqXOnpmeA%3D%3D; lg=true; sg=\"=19\"; lvc=sAhojs49PcqHQQ%3D%3D; isg=BPT0Md7dE_ic5Ie3Oa85RxaMxbLK3UqJMMiN6o5VjH8C-ZRDtt7aRXb3fXGEAVAP',

}

rows = []

for n in range(20, 31):

row = []

row.append(n)

for m in range (21, 32):

if m < n + 1:

row.append("")

else:

# 格式化请求地址,更换请求参数

reqUrl = url.format(n, m)

# 打印本次请求地址

print(url)

# 发送请求,获取响应结果

response = requests.get(url=reqUrl, headers=headers, verify=False)

text = response.text

# 打印本次请求响应内容

print(text)

# 将响应内容转换为Json对象

jsonobj = json.loads(text)

# 从Json对象获取想要的内容

toCntPercent = jsonobj['data']['interCrowdInfo'][1]['toCntPercent']

# 生成行数据

row.append(str(toCntPercent)+"%")

# 保存行数据

rows.append(row)

# 生成Excel表头

header = ['AI流转率', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']

# 将表头数据和爬虫数据导出到Excel文件

with open('D:\\res\\pachong\\tmall.csv', 'w', encoding='gb18030') as f :

f_csv = csv.writer(f)

f_csv.writerow(header)

f_csv.writerows(rows)import csv

import json

import ssl

import urllib.request

# 爬虫地址

url = 'https://databank.yushanfang.com/api/ecapi?path=/databank/crowdFullLink/flowInfo&fromCrowdId=3312&beginTheDate=201810{}&endTheDate=201810{}&toCrowdIdList[0]=3312&toCrowdIdList[1]=3313&toCrowdIdList[2]=3314&toCrowdIdList[3]=3315'

# 不校验证书

ssl._create_default_https_context = ssl._create_unverified_context

# 携带cookie进行访问

headers = {

'Host':'databank.yushanfang.com',

'Referer':'https://databank.yushanfang.com/',

'Connection':'keep-alive',

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',

'Cookie':'_tb_token_=iNkDeJLdM3MgvKjhsfdW; bs_n_lang=zh_CN; cna=aaj1EViI7x0CATo9kTKvjzgS; ck2=072de851f1c02d5c7bac555f64c5c66d; c_token=c74594b486f8de731e2608cb9526a3f2; an=5YWo5qOJ5pe25Luj5a6Y5pa55peX6Iiw5bqXOnpmeA%3D%3D; lg=true; sg=\"=19\"; lvc=sAhojs49PcqHQQ%3D%3D; isg=BPT0Md7dE_ic5Ie3Oa85RxaMxbLK3UqJMMiN6o5VjH8C-ZRDtt7aRXb3fXGEAVAP',

}

rows = []

n = 20

while n <31:

row = []

row.append(n)

m =21

while m <32:

if m < n + 1:

row.append("")

else:

# 格式化请求地址,更换请求参数

reqUrl = url.format(n, m)

# 打印本次请求地址

print(reqUrl)

# 发送请求,获取响应结果

request = urllib.request.Request(url=reqUrl, headers=headers)

response = urllib.request.urlopen(request)

text = response.read().decode('utf8')

# 打印本次请求响应内容

print(text)

# 将响应内容转换为Json对象

jsonobj = json.loads(text)

# 从Json对象获取想要的内容

toCntPercent = jsonobj['data']['interCrowdInfo'][1]['toCntPercent']

# 生成行数据

row.append(str(toCntPercent) + "%")

m = m+1

rows.append(row)

n = n+1

# 生成Excel表头

header = ['AI流转率', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']

# 将表头数据和爬虫数据导出到Excel文件

with open('D:\\res\\pachong\\tmall.csv', 'w', encoding='gb18030') as f :

f_csv = csv.writer(f)

f_csv.writerow(header)

f_csv.writerows(rows)

导出内容如下:

关于Python如何爬取Json数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

python爬取json数据与实际不一样_Python如何爬取Json数据相关推荐

  1. python读取数据的函数详解_python如何从文件读取数据及解析

    python如何从文件读取数据及解析 读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, ...

  2. python爬虫网易云音乐评论最多的歌_Python爬虫44万条数据揭秘:如何成为网易云音乐评论区的网红段子手?...

    获取数据 其实逻辑并不复杂: 1.爬取歌单列表里的所有歌单url. 2.进入每篇歌单爬取所有歌曲url,去重. 3.进入每首歌曲首页爬取热评,汇总. 歌单列表是这样的: 翻页并观察它的url变化,注意 ...

  3. python爬取app、返回的是加密数据_Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  4. 如何用python爬取公众号文章搜狗微信搜索_python如何爬取搜狗微信公众号文章永久链接的思路解析...

    这篇文章主要介绍了python如何爬取搜狗微信公众号文章永久链接的思路解析 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧. 本文主要讲解思路,代码部分请自行解决搜狗微信 ...

  5. python爬网页、爬到前几个就不动了_python scrapy 爬取起点小说,爬虫停止在第四页不动了...

    如题,我在测试爬虫的时候,终端出现了如下代码: 2019-04-20 15:04:51 [scrapy.core.engine] DEBUG: Crawled (200) (referer: http ...

  6. 用python把数据画成饼状图_Python学习第92课——数据可视化之饼状图绘制

    [每天几分钟,从零入门python编程的世界!] 假如一个行业只有ABCD四个公司,我们想要用图表展现,它们各自每年的生产总额,占整个行业的比例是多少,这时我们用饼状图(pie chart)更好. 假 ...

  7. python数据按照分组进行频率分布_python实现读取类别频数数据画水平条形图

    1.数据分组-->频数分布表 环境配置: 1 importpandas as pd2 importnumpy as np3 import matplotlib.pyplot as plt 按照你 ...

  8. python 取json下某一key_利用Python爬取全国250m精度的人口数据、房价数据和公交站(线路)等数据(一)...

    我的第一篇博客写的就是爬取人口数据,精度是1000m,后来有朋友和我说有个网站开放过250m精度的人口分布数据,而且人口分布有年龄分段等属性. 所以我决定试一下能不能爬到这个网站的人口信息,首先得注册 ...

  9. 爬虫攻守道 - 2023最新 - Python Selenium 实现 - 数据去伪存真,正则表达式谁与争锋 - 爬取某天气网站历史数据

    前言 前面写过3篇文章,分别介绍了反爬措施,JS逆向+ajax获取数据,以及正则表达式匹配开头.结尾.中间的用法.第3篇算是本文 Python Selenium 爬虫实现方案的子集,大家可以参照阅读. ...

最新文章

  1. IBM: 拆分瘦身,还有机会吗?
  2. VUE-CLI webpack配置autoprefixer后build模式与dev不相同,打包后部分前缀或属性丢失,所见即所得...
  3. ThinkPHP 框架培训资料
  4. linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
  5. 设计模式 之 --- GRASP
  6. scala的foreach和for
  7. 关于分布式一致性的探究
  8. 你必须了解Spring的生态
  9. 蓝牙扫描过程解析_智慧定位系统之蓝牙网关在室内定位技术的原理浅析-新导智能...
  10. 【汇编语言】多模块程序结构
  11. LINUX上安装gstreamer,解决video.h找不到的错误
  12. OpenCasCade标注显示类(独立)
  13. Windows 系统常用工具软件
  14. 软件选择,iDreamPiano、freepiano、EveryonePiano
  15. 平安性格测试题及答案_【中国平安人寿保险平安保险性格测试特别是智商题通过率怎么样】-看准网...
  16. 来自一个中科大差生,8年程序员生涯发展及感悟(强烈推荐)
  17. 因数分解——Pollard' p-1 Pollard rho
  18. 7-2 后序+中序序列构造二叉树
  19. bzoj 5143 [Ynoi2018]五彩斑斓的世界
  20. net usershare 返回错误 255

热门文章

  1. 国际现货黄金换算须知
  2. Android - kotlin 协程极简入门
  3. 常用WebServices 天气,IP,邮编,Email,火车时刻表,股票 web接口服务
  4. Ubuntu 16.04 下安装网易云
  5. 招聘java是什么意思_企业招聘Java程序员的标准到底是什么?
  6. python bz2模块
  7. Win7 安装最新版本Process Monitor失败,“无法加载驱动”
  8. SPSS并行配置不正确
  9. win10下安装Ubuntu18.10双系统
  10. 在Vue中异步加载数据渲染到Dom