Python爬虫学习之API与模拟ajax请求

API的使用

——通过API向服务器请求数据

优点:简单直接,高效率地批量爬取;解决动态网页的爬取。
缺点:通过API的缺点是有些网站会限制API调用的次数和频率,用户需要付费来升级成高级用户来获取更灵活的API调用。

HTTP协议

  • 在HTTP协议下,客户端和服务端通过交换各自的消息进行交互。由像浏览器这样的客户端发出的消息叫做请求(requests),被服务端回应的消息叫做响应(responses)。
  • 关于请求需要关注的:
      method:POST GET 等,描述要执行的动作
      URL:其中的参数 [url]?参数名1=参数值1&参数名2=参数值2…
      status code:2开头:成功(200 OK);4开头:请求错误(404 Not Found);5开头:服务器问题(500 Internal Server Error)
  • 关于响应需要关注的:
      Content-Type:服务器回应的报文内容类型,我们如何解析和存储数据?image/png;text/html;application/javascript…
      响应的内容:是我们需要的数据吗?(以及是否需要解码)

应用程序编程接口(Application Programming Interface,API)

  • 规范化的请求和响应;
  • 不同的应用程序提供不同的API,为程序员提供方便友好的接口以供访问;
  • 程序员可以用HTTP协议向API发送请求以获取信息,API会用XML或JSON格式返回服务器响应的信息,通过API获取的信息可以与网络爬虫获取的信息组合起来。

可扩展标记语言(eXtensible Markup Language,XML)

  • 一种很像HTML的标记语言,但其标签没有被预定义,需要自行定义标签;
  • 与HTML不同,其设计宗旨是传输数据,而不是显示数据。

Java 对象表示(JavaScript Object Notation,JSON)

  • 采用完全独立于编程语言的文本格式来存储和表示数据
  • 对象使用花括号括起来,采用{key1:value1, key2:value2, …}的键值对结构,键名可以使用整数和字符串来表示,值的类型可以是任意类型
  • 数组使用方括号括起来,采用[“java”,“javascript”,“vb”,…] 的索引结构。

API使用实例

  • 以音乐搜索开放API为例:https://api.apiopen.top/searchMusic?name=%E7%BA%A2%E8%B1%86
  • 开放API请参考:https://www.jianshu.com/p/e6f072839282
'''调用API 获取报文'''
import urllib.request as request
from urllib.parse import quote
import string
url = quote('https://api.apiopen.top/searchMusic?name=我和我的祖国',safe=string.printable) # url中包含中文 需要进行编码
response = request.urlopen(url).read().decode('utf-8')# 如果不进行解码?
response
'{"code":200,"message":"成功!","result":[{"author":"王菲","link":"http://music.163.com/#/song?id=1392990601","pic":"http://p2.music.126.net/HeGrAKPiZhKkONiFDxZvmw==/109951164384346866.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:00.000] 作曲 : 秦咏诚\\n[00:01.000] 作词 : 张藜\\n[00:26.886]我和我的祖国一刻也不能分割\\n[00:35.486]无论我走到哪里都流出一首赞歌\\n[00:44.196]我歌唱每一座高山我歌唱每一条河\\n[00:53.136]袅袅炊烟小小村落路上一道辙\\n[01:04.352]啦……\\n[01:15.141]你用你那母亲的脉搏和我诉说\\n[01:30.514]我的祖国和我像海和浪花一朵\\n[01:39.463]浪是海的赤子海是那浪的依托\\n[01:48.130]每当大海在微笑我就是笑的旋涡\\n[01:56.663]我分担着海的忧愁分享海的欢乐\\n[02:07.830]啦…..\\n[02:18.896]永远给我碧浪清波心中的歌\\n[02:29.830]啦…….\\n[02:40.796]永远给我碧浪清波心中的歌\\n","songid":1392990601,"url":"http://music.163.com/song/media/outer/url?id=1392990601.mp3"},{"author":"周冬雨,许魏洲,关晓彤,马天宇,鞠婧祎,魏大勋","link":"http://music.163.com/#/song?id=1393224585","pic":"http://p2.music.126.net/s7OIRUffpw5k1d8tHwkdpg==/109951164386244236.jpg?param=300x300","type":"netease","title":"我和我的祖国 青春版","lrc":"[00:00.000] 作曲 : 秦咏诚\\n[00:01.000] 作词 : 张藜\\n[00:22.438](周冬雨)\\n[00:23.438]我和我的祖国\\n[00:27.359]一刻也不能分割\\n[00:30.958](魏大勋)\\n[00:31.691]无论我走到哪里\\n[00:35.789]都流出一首赞歌\\n[00:39.689](关晓彤)\\n[00:40.257]我歌唱每一座高山\\n[00:44.453]我歌唱每一条河\\n[00:48.405](鞠婧祎)\\n[00:48.716]袅袅炊烟 小小村落 路上一道辙\\n[00:57.103](合唱)\\n[00:57.340]我最亲爱的祖国\\n[01:02.323]我永远紧依着你的心窝\\n[01:07.673]你用你那 母亲的脉搏 和我诉说\\n[01:39.086](许魏洲)\\n[01:39.389]我的祖国和我\\n[01:43.571]像海和浪花一朵\\n[01:47.669](马天宇)\\n[01:47.886]浪是那海的赤子\\n[01:51.954]海是那浪的依托\\n[01:56.083](周冬雨、鞠婧祎)\\n[01:56.405]每当大海在微笑\\n[02:00.533]我就是笑的旋涡\\n[02:04.404](魏大勋、关晓彤)\\n[02:04.800]我分担着海的忧愁\\n[02:09.086]分享海的欢乐\\n[02:13.205](合唱)\\n[02:13.515]我最亲爱的祖国\\n[02:18.624]你是大海永不干涸\\n[02:24.050]永远给我 碧浪清波 心中的歌\\n[02:32.457]我最亲爱的祖国\\n[02:37.698]你是大海永不干涸\\n[02:43.117]永远给我 碧浪清波 心中的歌\\n[02:51.510]永远给我 碧浪清波 心中的歌\\n","songid":1393224585,"url":"http://music.163.com/song/media/outer/url?id=1393224585.mp3"},{"author":"福克斯,刘炫廷","link":"http://music.163.com/#/song?id=1399712957","pic":"http://p2.music.126.net/B3mBo1IHlk18ao13HuYa4Q==/109951164455634110.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:00.000] 作曲 : 秦咏诚/福克斯/刘炫廷\\n[00:00.322] 作词 : 张藜/福克斯/刘炫廷\\n[00:00.968]编曲/混音:隆历奇\\n[00:04.933]歌曲原唱:李谷一\\n[00:27.219]福克斯verse:\\n[00:27.541]我跨过那山河\\n[00:28.624]体会在四海里奔波\\n[00:30.251]看落日余晖 茶香带余味\\n[00:32.025]纵情 哼 这首欢歌\\n[00:33.636]包含对家国的情 不会下落的心\\n[00:35.690]始终怀揣着一份敬 重\\n[00:37.252]向上的命 请你认真的听\\n[00:39.244]感受我这颗炽热的心 动\\n[00:41.128]奇迹在一幕幕谱写\\n[00:42.473]在空中 像起舞的蝴蝶\\n[00:44.301]飘落的枯叶 不再呜咽\\n[00:45.953]翻开盛世 中华 崭新的一页\\n[00:47.577]等到太阳升起 新的旅程出发\\n[00:49.593]你我中华儿女\\n[00:50.386]热血迸发\\n[00:51.182]而 我的言辞也从来不会夸大\\n[00:52.883]让这爱国的情 化作激昂的火花\\n[00:54.931]合:\\n[00:55.145]我和我的祖国\\n[00:58.349]一刻也不能分割\\n[01:01.410]无论我走到哪里\\n[01:04.850]都流出一首赞歌\\n[01:08.366]我歌唱每一座高山\\n[01:11.659]我歌唱每一条河\\n[01:15.108]袅袅炊烟 小小村落 路上一道辙\\n[01:21.947]刘炫廷 verse:\\n[01:22.204]无论身在何方 让我们一起迈向新时代\\n[01:25.650]谱写新的篇章 华夏力量跨越五湖四海\\n[01:29.012]青年力量 我们代表祖国的未来\\n[01:32.305]把梦想怀揣 在 我胸怀\\n[01:33.782]不懈奋斗让生活更加精彩\\n[01:35.562]旭日东升 伟大巨龙即刻苏醒\\n[01:39.221]成长崛起乃是注定 我们立足于世界之林\\n[01:42.471]这份热爱 永不倦怠 迎难而上冲破阻碍\\n[01:46.503]振奋旋律 格外豪迈 终有天定响彻中外\\n[01:49.689]合:\\n[01:49.950]我和我的祖国\\n[01:52.916]一刻也不能分割\\n[01:56.205]无论我走到哪里\\n[01:59.720]都流出一首赞歌\\n[02:03.185]我歌唱每一座高山\\n[02:06.672]我歌唱每一条河\\n[02:09.949]袅袅炊烟 小小村落 路上一道辙\\n","songid":1399712957,"url":"http://music.163.com/song/media/outer/url?id=1399712957.mp3"},{"author":"中央乐团合唱团","link":"http://music.163.com/#/song?id=1304261116","pic":"http://p2.music.126.net/w0viJOXZgoULFGQeCdA3xw==/109951163497243319.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:00.000] 作曲 : 秦咏诚\\n[00:01.000] 作词 : 张藜\\n[00:19.70]我和我的祖国\\n[00:23.91]一刻也不能分割\\n[00:28.21]无论我走到哪里\\n[00:32.51]都流出一首赞歌\\n[00:36.75]我歌唱每一座高山\\n[00:40.98]我歌唱每一条河\\n[00:45.56]袅袅炊烟\\n[00:47.64]小小村落\\n[00:49.81]路上一道辙\\n[00:54.55]我最亲爱的祖国\\n[01:00.01]我永远紧贴着你的心窝\\n[01:05.24]你用你那\\n[01:07.64]母亲的脉搏和我诉说\\n[01:34.27]我的祖国和我\\n[01:38.38]像海和浪花一朵\\n[01:42.83]浪是海的赤子\\n[01:47.24]海是那浪的依托\\n[01:51.52]每当大海在微笑\\n[01:55.78]我就是笑的旋涡\\n[02:00.30]我分担着海的忧愁\\n[02:04.71]分享海的欢乐\\n[02:09.16]我最亲爱的祖国\\n[02:14.55]你是大海永不干涸\\n[02:19.95]永远给我\\n[02:22.18]碧浪清波\\n[02:24.35]心中的歌\\n[02:28.99]我最亲爱的祖国\\n[02:34.28]你是大海永不干涸\\n[02:39.65]永远给我\\n[02:42.07]碧浪清波\\n[02:44.38]心中的歌\\n","songid":1304261116,"url":"http://music.163.com/song/media/outer/url?id=1304261116.mp3"},{"author":"隔壁老樊","link":"http://music.163.com/#/song?id=1394169337","pic":"http://p2.music.126.net/mXCez9PPPCZ_4EGqlZXevQ==/109951164395546408.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:00.000] 作曲 : 秦咏诚\\n[00:01.000] 作词 : 张藜\\n[00:25.900]演唱:隔壁老樊\\n[00:29.900]我和我的祖国一刻也不能分割\\n[00:38.640]无论我走到哪里都流出一首赞歌\\n[00:46.980]我歌唱每一座高山我歌唱每一条河\\n[00:56.210]袅袅炊烟小小村落路上一道辙\\n[01:07.230]啦……\\n[01:18.159]你用你那母亲的脉搏和我诉说\\n[01:44.540]我的祖国和我像海和浪花一朵\\n[01:53.310]浪是那海的赤子海是那浪的依托\\n[02:02.269]每当大海在微笑我就是笑的旋涡\\n[02:10.870]我分担着海的忧愁分享海的欢乐\\n[02:21.860]啦…..\\n[02:32.800]永远给我碧浪清波心中的歌\\n[02:43.830]啦…….\\n[02:54.780]永远给我碧浪清波心中的歌\\n[03:03.960]\\n[03:07.930]制作人:姚政/段小林\\n[03:10.150]监制:黄俊/唐晶晶\\n[03:12.319]企划:牛雪吟\\n[03:14.509]编曲:王东宇/林逸航\\n[03:16.629]鼓手:贝贝(武勇恒)\\n[03:18.949]贝斯:韩阳\\n[03:20.669]吉他:张淞\\n[03:21.620]和声:曾婕\\n[03:22.500]录音:洪士诚/甄浩\\n[03:23.470]混音:段小林\\n[03:24.419]录音棚:北京好听音乐录音棚\\n[03:25.830]\\n","songid":1394169337,"url":"http://music.163.com/song/media/outer/url?id=1394169337.mp3"},{"author":"廖昌永","link":"http://music.163.com/#/song?id=118024","pic":"http://p2.music.126.net/RXSjD7OJnodxmkkdDAUJ4A==/798245441765703.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:28.610]我和我的祖国一刻也不能分割\\n[00:36.729]无论我走到哪里都流出一首赞歌\\n[00:45.169]我歌唱每一座高山\xa0我歌唱每一条河\\n[00:53.609]袅袅炊烟\xa0小小村落\xa0路上一道辙\\n[01:01.859]我最亲爱的祖国\xa0我永远紧依着你的心窝\\n[01:10.859]你用你那母亲的脉搏和我诉说\\n[01:19.899]\\n[01:40.69]我的祖国和我像海和浪花一朵\\n[01:48.319]浪是那海的赤子\xa0海是那浪的依托\\n[01:54.889]每当大海在微笑\xa0我就是笑的旋涡\\n[02:05.569]我分担着浪的忧愁\xa0分亨海的欢乐\\n[02:14.310]我最亲爱的祖国\xa0你像大海永不干涸\\n[02:24.600]永远给我\xa0碧浪轻波\xa0心中的歌\\n[02:32.660]我最亲爱的祖国\xa0你像大海永不干涸\\n[02:42.910]永远给我\xa0碧浪轻波\xa0心中的歌\\n","songid":118024,"url":"http://music.163.com/song/media/outer/url?id=118024.mp3"},{"author":"韩红","link":"http://music.163.com/#/song?id=238689","pic":"http://p2.music.126.net/XJrJ_vlHZ4TFAR9gWQ-xTg==/669602581327739.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:25.499] 我和我的祖国 一刻也不能分割\\n[00:36.119] 无论我走到哪里 都留下一首赞歌\\n[00:48.600] 我歌唱每一座高山 我歌唱每一条河\\n[00:58.119] 袅袅炊烟 小小村落 路上一道辙\\n[01:09.209] 我亲爱的祖国 我永远紧依着你的心窝\\n[01:24.700] 你用你那母亲的脉搏 和我诉说\\n[01:34.599]\\n[02:00.590] 我的祖国和我 像海和浪花一朵\\n[02:09.366] 浪是那海的赤子 海是那浪的依托\\n[02:20.497] 每当大海在微笑 我就是笑的漩涡\\n[02:31.217] 我分担着海的忧愁 分享海的欢乐\\n[02:42.507] 我亲爱的祖国 你是大海永不干涸\\n[02:56.627] 永远给我碧浪清波 心中的歌\\n[03:07.516] 我亲爱的祖国 你是大海永不干涸\\n[03:21.697] 永远给我碧浪清波 心中的歌\\n[03:32.666] 永远给我碧浪清波 心中的歌\\n[03:48.276]\\n[03:56.297]\\n","songid":238689,"url":"http://music.163.com/song/media/outer/url?id=238689.mp3"},{"author":"向文涛","link":"http://music.163.com/#/song?id=1394817311","pic":"http://p2.music.126.net/TnRnPb1EiNQkz6K-XnXhsQ==/109951164426621273.jpg?param=300x300","type":"netease","title":"我和我的祖国(Cover:群星)","lrc":"[00:00.000] 作曲 : 秦咏诚\\n[00:01.000] 作词 : 张  藜\\n[00:09.822]我和我的祖国\\n[00:13.821]一刻也不能分割\\n[00:18.071]无论我走到哪里\\n[00:22.072]都流出一首赞歌\\n[00:26.071]我歌唱每一座高山\\n[00:30.322]我歌唱每一条河\\n[00:34.571]袅袅炊烟 小小村落\\n[00:38.572]路上一道辙\\n","songid":1394817311,"url":"http://music.163.com/song/media/outer/url?id=1394817311.mp3"},{"author":"李谷一","link":"http://music.163.com/#/song?id=257350","pic":"http://p2.music.126.net/ySTKZyjRHyNE-aLV-byPZg==/25288767452539.jpg?param=300x300","type":"netease","title":"我和我的祖国","lrc":"[00:37.660]我和我的祖国一刻也不能分割\\n[00:44.880]无论我走到哪里都流出一首赞歌\\n[00:52.000]我歌唱每一座高山 我歌唱每一条河\\n[00:59.240]袅袅炊烟小小村落路上一道辙\\n[01:06.930]啦……啦……\\n[01:16.200]你用那母亲温情和我诉说\\n[01:59.120]我的祖国和我像海和浪花一朵\\n[02:06.359]浪是海的赤子海是浪的依托\\n[02:13.520]每当大海在微笑我就是笑的旋涡\\n[02:20.979]我分担着海的忧愁分享着海的欢乐\\n[02:28.470]啦……啦……\\n[02:37.740]永远给我碧浪清波心中的歌\\n[02:44.610]我和我的祖国一刻也不能分割\\n[02:51.840]无论我走到哪里都流出一首赞歌\\n[02:59.060]我歌唱每一座高山 我歌唱每一条河\\n[03:06.509]袅袅炊烟小小村落路上一道辙\\n[03:14.009]啦……啦……\\n[03:23.020]永远给我碧浪清波心中的歌\\n[03:30.270]啦……啦……\\n[03:39.319]永远给我碧浪清波心中的歌\\n[03:49.840]\\n","songid":257350,"url":"http://music.163.com/song/media/outer/url?id=257350.mp3"},{"author":"嘉桐,李梓萌,吴一鸣,北京市朝阳区白家庄小学云鹤金帆合唱团,北京音协合唱团","link":"http://music.163.com/#/song?id=1398647915","pic":"http://p2.music.126.net/Dm15IRj6XFmXlzHd9wCjgg==/109951164444045552.jpg?param=300x300","type":"netease","title":"我和我的祖国 (童声领唱合唱版)","lrc":"[00:00.000] 作曲 : 秦咏诚\\n[00:01.000] 作词 : 张藜\\n[00:19.488]我和我的祖国\\n[00:23.152]一刻也不能分割\\n[00:27.008]无论我走到哪里\\n[00:30.934]都流出一首赞歌\\n[00:35.045]我歌唱每一座高山\\n[00:38.699]我歌唱每一条河\\n[00:42.545]袅袅炊烟 小小村落 路上一道辙\\n[01:11.635]啦 啦\\n[01:26.427]我的祖国和我\\n[01:29.744]像海和浪花一朵\\n[01:33.928]浪是海的赤子\\n[01:37.264]海是那浪的依托\\n[01:41.560]每当大海在微笑\\n[01:45.243]我就是笑的旋涡\\n[01:48.984]我分担着海的忧愁\\n[01:52.893]分享海的欢乐\\n[01:57.501]啦 啦\\n","songid":1398647915,"url":"http://music.163.com/song/media/outer/url?id=1398647915.mp3"}]}'
'''json'''
import json
json_response=json.loads(response)# 转换成一个json对象
json_response# 格式化地展示
{'code': 200,
 'message': '成功!',
 'result': [{'author': '王菲',
   'link': 'http://music.163.com/#/song?id=1392990601',
   'pic': 'http://p2.music.126.net/HeGrAKPiZhKkONiFDxZvmw==/109951164384346866.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:00.000] 作曲 : 秦咏诚\n[00:01.000] 作词 : 张藜\n[00:26.886]我和我的祖国一刻也不能分割\n[00:35.486]无论我走到哪里都流出一首赞歌\n[00:44.196]我歌唱每一座高山我歌唱每一条河\n[00:53.136]袅袅炊烟小小村落路上一道辙\n[01:04.352]啦……\n[01:15.141]你用你那母亲的脉搏和我诉说\n[01:30.514]我的祖国和我像海和浪花一朵\n[01:39.463]浪是海的赤子海是那浪的依托\n[01:48.130]每当大海在微笑我就是笑的旋涡\n[01:56.663]我分担着海的忧愁分享海的欢乐\n[02:07.830]啦…..\n[02:18.896]永远给我碧浪清波心中的歌\n[02:29.830]啦…….\n[02:40.796]永远给我碧浪清波心中的歌\n',
   'songid': 1392990601,
   'url': 'http://music.163.com/song/media/outer/url?id=1392990601.mp3'},
  {'author': '周冬雨,许魏洲,关晓彤,马天宇,鞠婧祎,魏大勋',
   'link': 'http://music.163.com/#/song?id=1393224585',
   'pic': 'http://p2.music.126.net/s7OIRUffpw5k1d8tHwkdpg==/109951164386244236.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国 青春版',
   'lrc': '[00:00.000] 作曲 : 秦咏诚\n[00:01.000] 作词 : 张藜\n[00:22.438](周冬雨)\n[00:23.438]我和我的祖国\n[00:27.359]一刻也不能分割\n[00:30.958](魏大勋)\n[00:31.691]无论我走到哪里\n[00:35.789]都流出一首赞歌\n[00:39.689](关晓彤)\n[00:40.257]我歌唱每一座高山\n[00:44.453]我歌唱每一条河\n[00:48.405](鞠婧祎)\n[00:48.716]袅袅炊烟 小小村落 路上一道辙\n[00:57.103](合唱)\n[00:57.340]我最亲爱的祖国\n[01:02.323]我永远紧依着你的心窝\n[01:07.673]你用你那 母亲的脉搏 和我诉说\n[01:39.086](许魏洲)\n[01:39.389]我的祖国和我\n[01:43.571]像海和浪花一朵\n[01:47.669](马天宇)\n[01:47.886]浪是那海的赤子\n[01:51.954]海是那浪的依托\n[01:56.083](周冬雨、鞠婧祎)\n[01:56.405]每当大海在微笑\n[02:00.533]我就是笑的旋涡\n[02:04.404](魏大勋、关晓彤)\n[02:04.800]我分担着海的忧愁\n[02:09.086]分享海的欢乐\n[02:13.205](合唱)\n[02:13.515]我最亲爱的祖国\n[02:18.624]你是大海永不干涸\n[02:24.050]永远给我 碧浪清波 心中的歌\n[02:32.457]我最亲爱的祖国\n[02:37.698]你是大海永不干涸\n[02:43.117]永远给我 碧浪清波 心中的歌\n[02:51.510]永远给我 碧浪清波 心中的歌\n',
   'songid': 1393224585,
   'url': 'http://music.163.com/song/media/outer/url?id=1393224585.mp3'},
  {'author': '福克斯,刘炫廷',
   'link': 'http://music.163.com/#/song?id=1399712957',
   'pic': 'http://p2.music.126.net/B3mBo1IHlk18ao13HuYa4Q==/109951164455634110.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:00.000] 作曲 : 秦咏诚/福克斯/刘炫廷\n[00:00.322] 作词 : 张藜/福克斯/刘炫廷\n[00:00.968]编曲/混音:隆历奇\n[00:04.933]歌曲原唱:李谷一\n[00:27.219]福克斯verse:\n[00:27.541]我跨过那山河\n[00:28.624]体会在四海里奔波\n[00:30.251]看落日余晖 茶香带余味\n[00:32.025]纵情 哼 这首欢歌\n[00:33.636]包含对家国的情 不会下落的心\n[00:35.690]始终怀揣着一份敬 重\n[00:37.252]向上的命 请你认真的听\n[00:39.244]感受我这颗炽热的心 动\n[00:41.128]奇迹在一幕幕谱写\n[00:42.473]在空中 像起舞的蝴蝶\n[00:44.301]飘落的枯叶 不再呜咽\n[00:45.953]翻开盛世 中华 崭新的一页\n[00:47.577]等到太阳升起 新的旅程出发\n[00:49.593]你我中华儿女\n[00:50.386]热血迸发\n[00:51.182]而 我的言辞也从来不会夸大\n[00:52.883]让这爱国的情 化作激昂的火花\n[00:54.931]合:\n[00:55.145]我和我的祖国\n[00:58.349]一刻也不能分割\n[01:01.410]无论我走到哪里\n[01:04.850]都流出一首赞歌\n[01:08.366]我歌唱每一座高山\n[01:11.659]我歌唱每一条河\n[01:15.108]袅袅炊烟 小小村落 路上一道辙\n[01:21.947]刘炫廷 verse:\n[01:22.204]无论身在何方 让我们一起迈向新时代\n[01:25.650]谱写新的篇章 华夏力量跨越五湖四海\n[01:29.012]青年力量 我们代表祖国的未来\n[01:32.305]把梦想怀揣 在 我胸怀\n[01:33.782]不懈奋斗让生活更加精彩\n[01:35.562]旭日东升 伟大巨龙即刻苏醒\n[01:39.221]成长崛起乃是注定 我们立足于世界之林\n[01:42.471]这份热爱 永不倦怠 迎难而上冲破阻碍\n[01:46.503]振奋旋律 格外豪迈 终有天定响彻中外\n[01:49.689]合:\n[01:49.950]我和我的祖国\n[01:52.916]一刻也不能分割\n[01:56.205]无论我走到哪里\n[01:59.720]都流出一首赞歌\n[02:03.185]我歌唱每一座高山\n[02:06.672]我歌唱每一条河\n[02:09.949]袅袅炊烟 小小村落 路上一道辙\n',
   'songid': 1399712957,
   'url': 'http://music.163.com/song/media/outer/url?id=1399712957.mp3'},
  {'author': '中央乐团合唱团',
   'link': 'http://music.163.com/#/song?id=1304261116',
   'pic': 'http://p2.music.126.net/w0viJOXZgoULFGQeCdA3xw==/109951163497243319.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:00.000] 作曲 : 秦咏诚\n[00:01.000] 作词 : 张藜\n[00:19.70]我和我的祖国\n[00:23.91]一刻也不能分割\n[00:28.21]无论我走到哪里\n[00:32.51]都流出一首赞歌\n[00:36.75]我歌唱每一座高山\n[00:40.98]我歌唱每一条河\n[00:45.56]袅袅炊烟\n[00:47.64]小小村落\n[00:49.81]路上一道辙\n[00:54.55]我最亲爱的祖国\n[01:00.01]我永远紧贴着你的心窝\n[01:05.24]你用你那\n[01:07.64]母亲的脉搏和我诉说\n[01:34.27]我的祖国和我\n[01:38.38]像海和浪花一朵\n[01:42.83]浪是海的赤子\n[01:47.24]海是那浪的依托\n[01:51.52]每当大海在微笑\n[01:55.78]我就是笑的旋涡\n[02:00.30]我分担着海的忧愁\n[02:04.71]分享海的欢乐\n[02:09.16]我最亲爱的祖国\n[02:14.55]你是大海永不干涸\n[02:19.95]永远给我\n[02:22.18]碧浪清波\n[02:24.35]心中的歌\n[02:28.99]我最亲爱的祖国\n[02:34.28]你是大海永不干涸\n[02:39.65]永远给我\n[02:42.07]碧浪清波\n[02:44.38]心中的歌\n',
   'songid': 1304261116,
   'url': 'http://music.163.com/song/media/outer/url?id=1304261116.mp3'},
  {'author': '隔壁老樊',
   'link': 'http://music.163.com/#/song?id=1394169337',
   'pic': 'http://p2.music.126.net/mXCez9PPPCZ_4EGqlZXevQ==/109951164395546408.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:00.000] 作曲 : 秦咏诚\n[00:01.000] 作词 : 张藜\n[00:25.900]演唱:隔壁老樊\n[00:29.900]我和我的祖国一刻也不能分割\n[00:38.640]无论我走到哪里都流出一首赞歌\n[00:46.980]我歌唱每一座高山我歌唱每一条河\n[00:56.210]袅袅炊烟小小村落路上一道辙\n[01:07.230]啦……\n[01:18.159]你用你那母亲的脉搏和我诉说\n[01:44.540]我的祖国和我像海和浪花一朵\n[01:53.310]浪是那海的赤子海是那浪的依托\n[02:02.269]每当大海在微笑我就是笑的旋涡\n[02:10.870]我分担着海的忧愁分享海的欢乐\n[02:21.860]啦…..\n[02:32.800]永远给我碧浪清波心中的歌\n[02:43.830]啦…….\n[02:54.780]永远给我碧浪清波心中的歌\n[03:03.960]\n[03:07.930]制作人:姚政/段小林\n[03:10.150]监制:黄俊/唐晶晶\n[03:12.319]企划:牛雪吟\n[03:14.509]编曲:王东宇/林逸航\n[03:16.629]鼓手:贝贝(武勇恒)\n[03:18.949]贝斯:韩阳\n[03:20.669]吉他:张淞\n[03:21.620]和声:曾婕\n[03:22.500]录音:洪士诚/甄浩\n[03:23.470]混音:段小林\n[03:24.419]录音棚:北京好听音乐录音棚\n[03:25.830]\n',
   'songid': 1394169337,
   'url': 'http://music.163.com/song/media/outer/url?id=1394169337.mp3'},
  {'author': '廖昌永',
   'link': 'http://music.163.com/#/song?id=118024',
   'pic': 'http://p2.music.126.net/RXSjD7OJnodxmkkdDAUJ4A==/798245441765703.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:28.610]我和我的祖国一刻也不能分割\n[00:36.729]无论我走到哪里都流出一首赞歌\n[00:45.169]我歌唱每一座高山\xa0我歌唱每一条河\n[00:53.609]袅袅炊烟\xa0小小村落\xa0路上一道辙\n[01:01.859]我最亲爱的祖国\xa0我永远紧依着你的心窝\n[01:10.859]你用你那母亲的脉搏和我诉说\n[01:19.899]\n[01:40.69]我的祖国和我像海和浪花一朵\n[01:48.319]浪是那海的赤子\xa0海是那浪的依托\n[01:54.889]每当大海在微笑\xa0我就是笑的旋涡\n[02:05.569]我分担着浪的忧愁\xa0分亨海的欢乐\n[02:14.310]我最亲爱的祖国\xa0你像大海永不干涸\n[02:24.600]永远给我\xa0碧浪轻波\xa0心中的歌\n[02:32.660]我最亲爱的祖国\xa0你像大海永不干涸\n[02:42.910]永远给我\xa0碧浪轻波\xa0心中的歌\n',
   'songid': 118024,
   'url': 'http://music.163.com/song/media/outer/url?id=118024.mp3'},
  {'author': '韩红',
   'link': 'http://music.163.com/#/song?id=238689',
   'pic': 'http://p2.music.126.net/XJrJ_vlHZ4TFAR9gWQ-xTg==/669602581327739.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:25.499] 我和我的祖国 一刻也不能分割\n[00:36.119] 无论我走到哪里 都留下一首赞歌\n[00:48.600] 我歌唱每一座高山 我歌唱每一条河\n[00:58.119] 袅袅炊烟 小小村落 路上一道辙\n[01:09.209] 我亲爱的祖国 我永远紧依着你的心窝\n[01:24.700] 你用你那母亲的脉搏 和我诉说\n[01:34.599]\n[02:00.590] 我的祖国和我 像海和浪花一朵\n[02:09.366] 浪是那海的赤子 海是那浪的依托\n[02:20.497] 每当大海在微笑 我就是笑的漩涡\n[02:31.217] 我分担着海的忧愁 分享海的欢乐\n[02:42.507] 我亲爱的祖国 你是大海永不干涸\n[02:56.627] 永远给我碧浪清波 心中的歌\n[03:07.516] 我亲爱的祖国 你是大海永不干涸\n[03:21.697] 永远给我碧浪清波 心中的歌\n[03:32.666] 永远给我碧浪清波 心中的歌\n[03:48.276]\n[03:56.297]\n',
   'songid': 238689,
   'url': 'http://music.163.com/song/media/outer/url?id=238689.mp3'},
  {'author': '向文涛',
   'link': 'http://music.163.com/#/song?id=1394817311',
   'pic': 'http://p2.music.126.net/TnRnPb1EiNQkz6K-XnXhsQ==/109951164426621273.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国(Cover:群星)',
   'lrc': '[00:00.000] 作曲 : 秦咏诚\n[00:01.000] 作词 : 张  藜\n[00:09.822]我和我的祖国\n[00:13.821]一刻也不能分割\n[00:18.071]无论我走到哪里\n[00:22.072]都流出一首赞歌\n[00:26.071]我歌唱每一座高山\n[00:30.322]我歌唱每一条河\n[00:34.571]袅袅炊烟 小小村落\n[00:38.572]路上一道辙\n',
   'songid': 1394817311,
   'url': 'http://music.163.com/song/media/outer/url?id=1394817311.mp3'},
  {'author': '李谷一',
   'link': 'http://music.163.com/#/song?id=257350',
   'pic': 'http://p2.music.126.net/ySTKZyjRHyNE-aLV-byPZg==/25288767452539.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国',
   'lrc': '[00:37.660]我和我的祖国一刻也不能分割\n[00:44.880]无论我走到哪里都流出一首赞歌\n[00:52.000]我歌唱每一座高山 我歌唱每一条河\n[00:59.240]袅袅炊烟小小村落路上一道辙\n[01:06.930]啦……啦……\n[01:16.200]你用那母亲温情和我诉说\n[01:59.120]我的祖国和我像海和浪花一朵\n[02:06.359]浪是海的赤子海是浪的依托\n[02:13.520]每当大海在微笑我就是笑的旋涡\n[02:20.979]我分担着海的忧愁分享着海的欢乐\n[02:28.470]啦……啦……\n[02:37.740]永远给我碧浪清波心中的歌\n[02:44.610]我和我的祖国一刻也不能分割\n[02:51.840]无论我走到哪里都流出一首赞歌\n[02:59.060]我歌唱每一座高山 我歌唱每一条河\n[03:06.509]袅袅炊烟小小村落路上一道辙\n[03:14.009]啦……啦……\n[03:23.020]永远给我碧浪清波心中的歌\n[03:30.270]啦……啦……\n[03:39.319]永远给我碧浪清波心中的歌\n[03:49.840]\n',
   'songid': 257350,
   'url': 'http://music.163.com/song/media/outer/url?id=257350.mp3'},
  {'author': '嘉桐,李梓萌,吴一鸣,北京市朝阳区白家庄小学云鹤金帆合唱团,北京音协合唱团',
   'link': 'http://music.163.com/#/song?id=1398647915',
   'pic': 'http://p2.music.126.net/Dm15IRj6XFmXlzHd9wCjgg==/109951164444045552.jpg?param=300x300',
   'type': 'netease',
   'title': '我和我的祖国 (童声领唱合唱版)',
   'lrc': '[00:00.000] 作曲 : 秦咏诚\n[00:01.000] 作词 : 张藜\n[00:19.488]我和我的祖国\n[00:23.152]一刻也不能分割\n[00:27.008]无论我走到哪里\n[00:30.934]都流出一首赞歌\n[00:35.045]我歌唱每一座高山\n[00:38.699]我歌唱每一条河\n[00:42.545]袅袅炊烟 小小村落 路上一道辙\n[01:11.635]啦 啦\n[01:26.427]我的祖国和我\n[01:29.744]像海和浪花一朵\n[01:33.928]浪是海的赤子\n[01:37.264]海是那浪的依托\n[01:41.560]每当大海在微笑\n[01:45.243]我就是笑的旋涡\n[01:48.984]我分担着海的忧愁\n[01:52.893]分享海的欢乐\n[01:57.501]啦 啦\n',
   'songid': 1398647915,
   'url': 'http://music.163.com/song/media/outer/url?id=1398647915.mp3'}]}
'''抽取所需要的内容'''
#json_response['result']
#json_response['result'][0]
json_response['result'][0]['link']
'http://music.163.com/#/song?id=1392990601'
'''写入文件'''
import csv
csvFile=open("E:/研究生/其他/Python爬虫/数据/songs.csv","w+",newline='',encoding="utf-8-sig")#
writer=csv.writer(csvFile)
writer.writerow(['author','link','title','lrc'])
for song in json_response['result']:
    author=song['author']
    link=song['link']
    title=song['title']
    lrc=song['lrc']
    writer.writerow([author,link,title,lrc])
csvFile.close()# 一定要记得关闭文件

AJAX

  • AJAX = 异步 JavaScript 和 XML。
  • AJAX 是一种用于创建快速动态网页的技术。
  • 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
  • e.g. 新浪微博、Google 地图、百度指数。
  • 与API的关系:通过JavaScript调用API请求数据,我们需要做的——模拟ajax调用API。

以百度指数为例:

通过浏览器提供的开发者工具(Network)找到获取所需内容的ajax请求:
  Request URL(所调用的API):
  http://index.baidu.com/api/SearchApi/index?area=0&word=%E6%B5%81%E6%84%9F&startDate=2019-04-25&endDate=2019-10-21

import requests
headers = {#请求的头 让服务器知道是谁的何种请求
    "Accept" : "application/jason, text/javascript, */*; q = 0.01",
    "X-Request-With" : "XMLHttpRequest",
    "User-Agent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36",
    "Content-Type" : "application/x-www-form-urlencode:chartset=UTF-8",
    "Cookie":""# 你的cookie
    }#cookies的存续与session一致,辨别请求者的身份
dataJsonUrl="http://index.baidu.com/api/SearchApi/index?area=北京&word=流感&startDate=2018-01-01&endDate=2018-12-31"#API的URL 包含指定的参数
r = requests.get(dataJsonUrl, headers=headers,timeout=10)#获取报文内容
dataJson=r.json()#解析JSON格式的报文内容
dataJson#数据被加密了
{'status': 0,
 'data': {'userIndexes': [{'word': '流感',
    'all': {'startDate': '2018-01-01',
     'endDate': '2018-12-31',
     'data': 'T-3-SW-W8mSWW-miSWmQQ8SWm-iTSTi-ZSWWZWZSW3mQmSW8Q83SW3QTWSW3m8WSW-Z33SW8T8iSWi83TSWo8oTSWT-ZWSWQ3WZSWiQQQSW3WoWSWWT8WSWWiWoSW8WZmSWm-m-ST8o-SZ---Sio--SiiWiSi-Z8SiiT-S3To-S33WTS3mTTS-ooZS-Q-oS--38S-i3-S-3QWS-8TWS-8TmS--WWS-8i3S--ZmSTmmWSWWQ-3Soo-oSiQ83S33ToS3-WmS3moTS3W8WS-oQZS-Qo8S3WZoS-o3oS3W-ZS--TQSiWT8SQTmZSZmZ-SZ3ZZSWWZ8oS3QiTS3W8WS3iTWS3WZTS-oZ-S8T-TS8QQ8S8iiWS8iWZS8o8mS8i83S-moiS8ZomS88QoSWZZQSWZ3mSWoZ8SWoZ-SWZQZSWo3-S8mZTS8mWoSWQm-SWZZ-SWT-oSWoQZSWT3QSWZi8SWiT3SWiQiSWZWQSWQT-S8--QSWoQiSW3i-SW3m3SW3QWSWimTSWi8TSWiWQSWi8WSWiQ3SW-QWSW8T-SW3m8SWiWmSW3WWSW-TTSW-m-SW-mZSW-WWSW-i8SW-i-SW-o8SW-8-SW-8TSW8-ZSWWZ3SW8-8SW-3QSW88iSWW-3SW8i-SW3iQSW-83SW8o8SW8miSWWmoSWWZZSW883SWWZZSW-Z3SW8ZTSW-3iSW--8SW-moSW-8iSW88ZS83-QSWQ33SWQQ8S3m8ZSWiiQSW3oWSW-8mSW3miSW-iQSW-iiSW-QmSW-3iSW8ToSW-8ZSW-8-SW-8ZSW38TSW38mSW3WoSWZQ-SW-QWSW-iZSW8Q8S-o3-S8-WiS8iZiS8ZmoS-To-S8o83S8WiZSWZQiSW3ioSWiW-SW3iiSW-oWSWim3SW3iQSW-o8SWQTQSW-TTSW3Q-SW-Z3SW-WWSW8iWSW-8TSW8TTSW3iWSW-TiSW8QiSW--ZSW-oQSW-8mSW-oiSW8TTSW-3ZSW8oTSW8m3SW8ZiSW8iQSW-mWSW3-8SW-88SW8T3SW-ZTSWi38SW-3WSW--8SW-iiSW8-WSWWTmSW8iQSW3ZTSW-ZoSW8Z-SW8oiSW-QiSW8oZSW-Z8SW38TSW8oWSW8T-SW8iTSW88mSW8ToSW-i3SW8Z8SW8oQSW-mZSW8iWSW8iTSW8i3SWWoZSW-m3SWi-iSW-38SW33-SW3imSW8QiSW-WQSW8T8SW-moSW-8ZSW-8TSW8oTSWWTiSW--iS-8Q8S8TW3SWT3iSWZT3S8i3iS8mo-Si8QWS83TTS88ZTS8mWZSWTiZS-mmTS3Q8mS8ZT-S8miQS83imSWZ-mSWQ8WSWToQS8Z8-S8QZiS-moZS8m8-SWo--SWi3oSWiZ3SWi3ZSWT83SWTo3SW3mWSW33oS8m8-SWiZWSW3ZQSWimWSW3W8SW3QQSW3iiSWiWQSW3W8SW3-mSWQQ8SWiZ8SWiWiSW3T8SW3ZZSW3QQSW38ZSW33QSWQm3SWiZWSWQm-SWT8mSWoZ-SWQZQSWZ8mS8miiS88ZTS8W-iS8m8ZS8mWWSWT8mS8WoTS8mZZSWT3ZSWommSWZoiSWQm3SWQWmSW3o-S8Wo8S88QiS8-TWS83WZS88miS8moTS8mWQS8WZZS8i8TS8i83S8imoS8Qi8S-moQS8iW-S8TQmS8TiTS8Zi3S8QooS8ZimS838oS8QWTS-m3WS-8ZmS-m8TS-m83S8TmiS8i3WS83ZoS8Q-mS8QT8S8i-ZS8T33S8ToQS8QTmS8QWWS-W8QS-WoZS-mTiS-3Q3S-QTTS-33WS--QZS3mZQS3Zi3S3i8ZS3TToSi8omS3o-8Si8-8SZmT8'},
    'pc': {'startDate': '2018-01-01',
     'endDate': '2018-12-31',
     'data': 'oQoS-QQWS-mW-S-m8TS8TQiSW3-oSWo-QS3i33S-oi8SiWiZS3WQ8S-ZZTS8Wi8S8Q-oSiTimSi-m8S3-3TS-oQmS-ioiSWZToSWZ3oS--83S8T3WS8WoZSWTQoSWiZ8Soi8SoTmSWQQTSW-ioSWWQTSWW8-SWmmiSTomSZi8SoT8SoT8SoZoSo--So8mST-WSTZZS8i3mS-WZiSWi-8STT3STZZSZ-ZSZ3QSZi8SZQ-ST8TSoTmSTQ-SomiS8oQSW-moS8WoZS8m-mS88ZQS88QZSQZiS3ZTSWWT-SWmZiSWmWTS3oiS33iSWTZSWiTSQ8TS3mQSTT-STiTSiQoSW8WSWWTS-8-S-TWSWTTS-oZSQQWS3Q3SWW3S-ToSiT8SZ-3SQTiSQ-oS3QTS3imSZWTSQ8ZSZZ8SQiWS3TZS3i-Si8ZSiZ3Sio3SiTiSiQTSQ-mS3-mS-Q3SimoSioWSi8QS3ooS3-mS3WoS38mS3ZTS3ZQSi8ZS3iWS3ZiS38-S--8S-ToSimZS3ZWS3-mS3mTSiQQS3iZS3ooS3-mS3WoS3Q3S-Z3S-W8SimWS-ooS3WoS3WWS-TiS-TQS8oiSTm8Si8-SQZQSWimQSiTiSiW-S-ZWS3i3S33-S38-S33iS3mmS-o3S-TiS-ZTS3mTS3T8S3QZS3Z-SQoTS3mTS3m-S-3ZSoTmSTQ8STZWST33Som-STiZSQZWSQ--SimWSiiiSiWiS3-QSi-8Si-mS3ZiSioWS3ZWSi8oS3imS3mTS-ZTS3ZWS38QSiWmS3Q8S-Z8S33mSimWS3-ZS3ooS3m-S33TS3m8S--QS3m-S-ZZS388S3ZiS3-3S-TQS3Z-SiTQS3-QS33TS33iS-Q3S-WmS-QoSiT-S3Z-S38-S3WWS3QWS388S3omS3ZiS3moS-oZS-TQS-ZiS-TTS3-oS-o8S-oWS3W8S-QoS-TmS-Z3S-8ZS38QSioWS3iQSimQSiWoS-ZZS3WZS3mTS3-oS3Q8S3QZS38-S--8S-ToSTm-SZToSQWoSiTTSTQTSQimSoQTSTQ3SQZ-SQT8SioiSTmTSTZoSZQmSQi3SZo8SQ-QSiQ3SiQWSQiWSQomSZ3ZSQ-oSQWQS3oQSi-8SiiTSimZSi-iS-ZZS3Q8S3Q8S3TWS3QZS3ioS3Q8S3oQSi8WSiQmS3TTS3-3SiiTSioiSi-TSi3QSi8QSiW-S3iZS3Q8SQWQSQmmSQmQSZmoSZQTS3oTSimZSZm-SZiTSZZiSZ3WSZWiSim8SZm3SZ3QSQWoSQQZSQ8-SiTmS3-QS3W3SZW-SZmZSQZoSZmWSQZoSimoS3oTSZWiSZT-STZWSTiiST8ZST3QSQmTSToWSTTWSTiiSTiZSTWoSi3oSiZ8STi3STiQST-3ST3ZSTWmSio3Si3WSZQWST3iSZm3ST33SZ3WSi3-SiTmST3TSZoZSTm-STiQST3ZSiTiSiQWSom8SWmiiSo-WSo3ZSooTSo83STQZSW-Qi'},
    'wise': {'startDate': '2018-01-01',
     'endDate': '2018-12-31',
     'data': 'Z-Z3So3ioST8o8SZQ-3SZ3o-SZmoTSoZTWSoiWQSTQZ8Soi83SoTioSooQQSWmQZ-SW8QmoSW-33TSW-mQoSW8mQoSWWZmQSWmioQSWmm-8SoZZmSTT3QSZ3Q8SQmoQSi3Q3S3-QWS3iQ-S3-o8S-oWiS-i-3S-8imS8oQiS8oo8S8Z3oS8iomS8iQWS83ZoS8-m8S8-3ZS8-oWS838-S83o-Si3QWST3ioST3mZS3Z3mS-QW8S-iZ-S--i8S--QoS-8m3S8TQ3S-WooS-mTQS-8-8S-momS-TZ-S3QWmSim3-Si8mWSo3Q8S-oT-S-Q3-S--oTS-Wm-S8oiiS8-3-S88WZS8-Q3S8-ioS88o8S8WWTS88W8SWo-8SWZmmSWQiiSWQ88SWQ3oSWio8SWiZoSWi3QSW3WZSWiiiSW3ToSW-T3SW8iZSW8--SWWQWSWWW-SWWWQSWWWiSooTSWmiQSWiQ3SW-W3SoQQSoiWSo-3So-3So-3So-WSoi-So-3So-WSoWoSTo-SoWoSTTiSTToSTZ-STTTSToWSTZ3STZZSTQiSTZ8STi-STW3ST38ST3-ST-oSZi3SZm3ST3iSTomSTQZSZo-SZZiSQomSZW-STimSTQiSTZ-STZoSo8QSo8WSo83So-oSo-8SWQ-3SWW8WSoTQS8i8WSoZWSoZTSo3oSoiWSoW-So-8SoWiSo3iSToiSo38So3iSoWoSo3QSoi-So3QSWmQiSoi-Soi3SoWiS8oQ-SW3i-SWZm3SWTQiS8oomS8mQZSW3TQSWW-8SoiTSoiTSo3mSoiiSoZ8So8QSoWZSWmoiSoWZSo-3So83Som-STZ-STiZSTQ8So3WSo8-STo-SToZSToiSTT-SToQSTTiSTooSToQSTQTSTZ8STZoSTZoSoiZSTTTSToTSomiSoiQSomiSTT3SoWmSTQZSTZmSTTZSToiSomQSTimSTT3Som3STZiSTT8Soi-STT8STTQSTZ8ST3iSomWSoWiSTTmSomiSToiSTT8STZTSTTmSTZmSTZTSo33STTQSo-ZSo-WSTTTSTooSTZ3STZmSTQiSTQWSTZiSTi-So3QS83ioS8m8iSW88QSWWoQSWQZZSW33-S38o-SWQ83SWQmiSW--iSW8Q8S88mmS-Z3WS8m8-SW3m8SWQiTSWmo3SWmiZSW--iS8mZ8SWoTiS8-imSW-T3SW-WZSWmi-SWm38SoToSW-WZSW-ioSWm83SoTZSWiQWSWmomSWmmoSWm38SoimSoZmSo-3SoiQSo83SooQSWWm3SoZZSoZZSo-QSoiWSoi-SoZmSoT3SoTTSoZWSooZSWWWWSW8miSWWZTSW8W-SW-i8SWi8mSW-QmSW8TQSW8oQSW-WTSW3o3SW--WSW88TSW8--SWWZ8SWm83SWWZ3SWmZoSW3ZoSWiiTSWZm8SWZWQSWi8QSWiToSWiWTSW3Q8SWZ3iSWQi-SWQi3SWT8iS88imSWomiSWoQoSWoZZSWTooSWT38SWo-WSWTTmS8m3QS8WTZS83W3S8Wo3S8WZZSWooiSWo3ZSWo-TSWTQoSWT-ZSWT--S8mmmS8WiiS8W-ZS8m-WS88ZTS83mmS88T8S8QmTS8T3WS8TiQS8TmQS-WZ3S-QooS-ioQS-o38S38o8S3mmTS3-QiSiZWZ'},
    'type': 'day'}],
  'generalRatio': [{'word': '流感',
    'all': {'avg': 3000, 'yoy': 46, 'qoq': 46},
    'pc': {'avg': 812, 'yoy': 18, 'qoq': 18},
    'wise': {'avg': 2188, 'yoy': 60, 'qoq': 60}}],
  'uniqid': '8a39c25d334e6c2a4a4749d4d80f7b90'},
 'message': 0}
def decrypt(t,e):# 解密处理函数
    n=t
    i = e
    r = {}
    a = []
    o = 0
    while (o<len(n)/2):
        r[n[o]]=n[int(len(n)/2+o)]
        o=o+1
    s=0
    while (s<len(e)):
        a.append(r[i[s]])
        s=s+1
    sglData=''
    dataList=[]
    for char in a:
        if  char is not ',':
            sglData=sglData+char
        else:
            if sglData is '':
                dataList.append(0)
            else:
                dataList.append(int(sglData))
            sglData=''
    if sglData is '':
        dataList.append(0)
    else:
        dataList.append(int(sglData))

    return dataList
# 请求获取数据
r = requests.get(dataJsonUrl, headers=headers,timeout=10)#获取报文内容
dataJson=r.json()#解析JSON格式的报文内容
# 请求获取秘钥
uniqid=dataJson['data']['uniqid']
rkey = requests.get("http://index.baidu.com/Interface/ptbk?uniqid="+uniqid, headers=headers,timeout=10)
# 解密
keyJson=rkey.json()
key=keyJson['data']
codedData=dataJson['data']['userIndexes'][0]['all']['data']
decrypt(key,codedData)
[8343,
 13120,
 11305,
 10662,
 10358,
 8537,
 ...
 7082]
发布了4 篇原创文章 · 获赞 4 · 访问量 224

猜你喜欢

转载自blog.csdn.net/m0_37544963/article/details/103132021