03、编写网络爬虫及过程分析💪💪💪

过程分析


一、什么是Network❓

  ①概念:记录当前页面上发生的请求

 

 

二、如何使用Network❓

 

   ①第一行我们点击Network

  ②第二行,红色的原按钮是启用Network监控 -----   ----,灰色圆圈是清空面板-----------,右侧勾选框Preserve log保留请求日志----------

 

  ③第三行是分类查看

ALL 查看全部
XHR 不需要刷新网页就可以进行数据传输的对象
Doc Document,网页的第一个请求
Img 只查看图片
Media 只查看媒体文件
Other 其他
JS和CSS JS是前端脚本语言,CSS是页面样式文件
Font 字体
WS和Manif 爬虫不需要了解

 

 三、什么是json❓

  1、json是一种特殊的字符串——>由列表/字典的语法写成(json能够有组织地存储信息。) 

 a = "1,2,3,4"
type(a)
#<class 'str'>
b =[1,2,3,4]
 type(b)
#<class 'list'>
 c ="[1,2,3,4]"
 type(c)
#c就相当于一个json文件
#<class 'str'>
        

  2、组织数据的规律:

    

 

 

  3、如何解析json数据❓

    

 

 案例:📖

"""
    1、爬取qq音乐五月天的歌曲信息
    2、歌曲名、播放时间、链接等数据
    3、至少爬取三到五页的内容
    4、使用的模块:requests
"""

# 导入库
import requests


def send_request(url):
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"}
    res = requests.get(url, headers=headers)
    json_music = res.json()
    list_music = json_music['data']['song']['list']
    for music in list_music:
        print('歌名:' + music['name'])

        # 以name为键,查找歌曲名

        print('所属专辑:' + music['album']['name'])

        # 查找专辑名

        print('播放时长:' + str(music['interval']) + '')

        # 查找播放时长

        print('播放链接:https://y.qq.com/n/yqq/song/' + music['mid'] + '.html\n\n')

        # 查找播放链接


# 主函数
def main():
    for i in range(1, 4):
        url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=71026466913918890&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p={}&n=10&w=%E4%BA%94%E6%9C%88%E5%A4%A9&g_tk_new_20200303=5381&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'.format(
            i)
        send_request(url)


if __name__ == '__main__':
    main()
    print('爬取完成')

 

上一节       下一节   返回目录

👆      👆    👆

 

posted @ 2021-01-30 12:54  贫僧敲代码  阅读(161)  评论(0)    收藏  举报