Python—爬虫之Network,XHR,json & 带参数请求数据(爬取歌单、歌词)

Network是什么,能做什么

网页中F12打开网页源代码,就可以看到Network。
Network的功能是:记录在当前页面上发生的所有请求。
为什么我们需要从Network中获取信息,因为只有比较老(或比较轻量)的网站,我们用requests和BeautifulSoup就能解决它们,而对于比较复杂的网站,关键信息都是在实时网页的请求中,我们需要找到被隐藏的数据请求,才能继续进行下一步。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

XHR要如何请求

完整表述是:XHR and Fetch
不知道大家有没有仔细观察过,浏览器上方,它所访问的网址没变,但是网页里却新加了内容
典型代表:如购物网站,下滑自动加载出更多商品。在线翻译网站,输入中文实时变英文
这个,叫做Ajax技术,应用这种技术,更新网页内容,不用重新加载整个网页,又省流量又省时间
在这里插入图片描述
在这里插入图片描述

json格式的转换

json则是另一种组织数据的格式,和html一样,常用来做网络数据传输。
json和XHR之间的关系:XHR用于传输数据,它能传输很多种数据,json是被传输的一种数据格式。

import json             # 引入json模块
a = [1,2,3,4]           # 创建一个列表a。
b = json.dumps(a)       # 使用dumps()函数,将列表a转换为json格式的字符串,赋值给b。
print(type(b))          # 打印b的数据类型,结果为字符串

c = json.loads(b)       # 使用loads()函数,将json格式的字符串b转为列表,赋值给c。
print(type(c))          # 打印c的数据类型,又转回列表了

小面展示一个实际案例应用,爬取一下你喜欢的“动次打次”的列表,并用json来解析数据。

import requests                # 引用requests库
for i in range(60):
    res_music = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=61322692688223569&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p={}&n=10&w=%E6%9D%8E%E5%AE%87%E6%98%A5
  • 30
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值