【网络安全带你练爬虫-100练】第8练:json数据的最小项提取

目录

一、目标1:爬取指定json中数据

二、目标2:循环取json中数据

三、目标3:提取每个数据中的某一项

四、网络安全小圈子


一、目标1:爬取指定json中数据

爬取data里数据


核心代码:

复制代码
        dirt1 = json.loads(res.text)
        print(dirt1['data'])

(1)json.loads()方法可用于解析有效的JSON字符串并将其转换为Python字典

(2)dirt1['data']是打印json中的data部分


运行结果:

完成了爬取


代码:

复制代码
import requests
import json
from fake_useragent import UserAgent

def get_json():
    try:
        url = 'https://napi-huawei.tianyancha.com/next/web/home/vajialist?_=1688703382196'
        ua = UserAgent()
        headers = {
            'User-Agent': ua.chrome,
        }
        res = requests.get(url, headers=headers,timeout=10)
        dirt1 = json.loads(res.text)
        print(dirt1['data'])

    except:
        return ""


if __name__ == '__main__':
    get_json()


二、目标2:循环取json中数据

我这里有2部分才到列表里面是把

所以我要取列表中数据就要变为

复制代码
dirt1['data']['detailList']

循环:

使用一个循环就可以区分开来了

复制代码
        for item in dirt1['data']['detailList']:
            print(item)

代码:

复制代码
import requests
import json
from fake_useragent import UserAgent

def get_json():
    try:
        url = 'https://napi-huawei.tianyancha.com/next/web/home/vajialist?_=1688703382196'
        ua = UserAgent()
        headers = {
            'User-Agent': ua.chrome,
        }
        res = requests.get(url, headers=headers,timeout=10)
        dirt1 = json.loads(res.text)
        #print(dirt1['data'])
        for item in dirt1['data']['detailList']:
            print(item)

    except:
        return ""


if __name__ == '__main__':
    get_json()


三、目标3:提取每个数据中的某一项

目标

提取这2个指定项

理解:

此时item其实相当于dirt1['data']['detailList']中的一项

所以

复制代码
item['resourceKey'] === ['data']['detailList']['resourceKey']

这行代码精确到数据中的更小一项resourceKey

运行结果:

完整代码:

复制代码
import requests
import json
from fake_useragent import UserAgent

def get_json():
    try:
        url = 'https://napi-huawei.tianyancha.com/next/web/home/vajialist?_=1688703382196'
        ua = UserAgent()
        headers = {
            'User-Agent': ua.chrome,
        }
        res = requests.get(url, headers=headers,timeout=10)
        dirt1 = json.loads(res.text)
        #print(dirt1['data'])
        for item in dirt1['data']['detailList']:
            #print(item)
            print(item['resourceKey'])
            print(item['resourceName'])


    except:
        return ""


if __name__ == '__main__':
    get_json()


四、网络安全小圈子

README.md · 书半生/网络安全知识体系-实战中心 - 码云 - 开源中国 (gitee.com)https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge

相关推荐
骥龙1 小时前
4.12、隐私保护机器学习:联邦学习在安全数据协作中的应用
人工智能·安全·网络安全
天硕国产存储技术站1 小时前
DualPLP 双重掉电保护赋能 天硕工业级SSD筑牢关键领域安全存储方案
大数据·人工智能·安全·固态硬盘
Hacker_Oldv4 小时前
Python技能进阶:探索Selenium库,实现网页自动化测试与爬虫
自动化测试·软件测试·爬虫·python·selenium·职场和发展
xixixi777775 小时前
解析一下存储安全——“它是什么”,更是关于“它为何存在”、“如何实现”以及“面临何种挑战与未来”
网络·安全·通信
运维有小邓@5 小时前
实时日志关联分析工具:智能检测潜在安全威胁
运维·网络·安全
世界尽头与你5 小时前
Go pprof 调试信息泄露漏洞
安全·网络安全·golang·渗透测试
l***77525 小时前
开源的不需要写代码的爬虫maxun
爬虫·开源
ImAlex6 小时前
IPIDEA代理IP深度测评:构建智能体知识库的得力助手
爬虫·agent
第二只羽毛6 小时前
遵守robots协议的友好爬虫
大数据·爬虫·python·算法·网络爬虫
程序猿编码6 小时前
PRINCE算法的密码生成器:原理与设计思路(C/C++代码实现)
c语言·网络·c++·算法·安全·prince