python爬虫之json数据解析

这篇具有很好参考价值的文章主要介绍了python爬虫之json数据解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

日常爬虫过程中我们对于爬取到的网页数据需要进行解析,因为大多数数据是不需要的,所以我们需要进行数据解析,常用的数据解析方式有正则表达式,xpath,bs4。今天我们重点来了解一下什么是json。欢迎收藏学习,喜欢点赞支持。
json(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。json模块提供了四个功能:dumps、dump、loads、load,用于字符串 和 python数据类型间进行转换。
在日常执行爬虫项目的过程中,有时返回的不是一个html页面而是json格式数据,此时对数据的解析非常重要比,比如以下2种方式:
1.Json格式数据的爬取,采用request对以上的url进行爬取,在爬取的过程中,考虑到需要模拟真实的用户,因此需要添加cookie或者header参数。

import  requests

content=requests.get(url,headers=headers).content

2.对爬取的json格式数据的解析,数据已经爬取下来,存放在contend里面,接下来就是对数据的处理,这种可以在 www.bejson.com,对于这个数据的解析可以采用采用正则表达式解析,使用正则提取title字段、

import re

project = re.findall(r'"title":(.*?),', content)

实际项目案例测试,我们以爬取淘票票官网最近比较火的电影为例使用Java和爬虫代理IP,通过Jackson库解析stream流式JSON数据的示例代码,实现代码有亿牛云提供、文章来源地址https://www.toymoban.com/news/detail-508870.html

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.io.InputStream;

public class StreamJsonParserExample {

    public static void main(String[] args) throws IOException {
        // 亿牛云(动态转发隧道代理) 爬虫代理加强版  代理服务器和端口
        HttpHost proxy = new HttpHost("www.16yun.cn", 8080);
        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        // 亿牛云(动态转发隧道代理) 爬虫代理加强版 用户名和密码
        credentialsProvider.setCredentials(
                new AuthScope(proxy.getHostName(), proxy.getPort()),
                new UsernamePasswordCredentials("16YUN", "16IP"));

        // 创建HTTP客户端
        CloseableHttpClient httpClient = HttpClientBuilder.create()
                .setProxy(proxy)
                .setDefaultCredentialsProvider(credentialsProvider)
                .build();

        // 创建HTTP请求
        HttpGet httpGet = new HttpGet("http://example.com/stream.json");

        // 执行HTTP请求
        CloseableHttpResponse response = httpClient.execute(httpGet, HttpClientContext.create());

        // 获取HTTP响应的输入流
        InputStream inputStream = response.getEntity().getContent();

        // 创建Jackson解析器
        JsonFactory jsonFactory = new JsonFactory();
        JsonParser jsonParser = jsonFactory.createParser(inputStream);
        ObjectMapper objectMapper = new ObjectMapper();

        // 逐个解析JSON对象
        while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            if (jsonParser.currentToken() == JsonToken.FIELD_NAME && "name".equals(jsonParser.getCurrentName())) {
                jsonParser.nextToken();
                String name = objectMapper.readValue(jsonParser, String.class);
                System.out.println("Name: " + name);
            }
            // 解析其他字段
        }

        // 关闭HTTP响应和输入流
        EntityUtils.consume(response.getEntity());
        inputStream.close();
    }
}

到了这里,关于python爬虫之json数据解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 〖Python网络爬虫实战㉑〗- 数据存储之JSON操作

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                  python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月02日
    浏览(41)
  • 数字之美:探秘数据可视化如何在我们的日常生活中展现魅力

    数据可视化是如何通过多种方式走进我们生活的呢?它不仅仅是冰冷的数字和图表,更是一门让信息跃然纸上的艺术。让我们一同探讨数据可视化如何以多种方式渗透进我们的日常生活,为我们呈现丰富而生动的信息画卷。下面我就以可视化从业者的角度来简单说说这个话题

    2024年02月02日
    浏览(47)
  • Python解析JSON数据的方法

    Python解析JSON数据的方法 在Python中,我们可以使用内置的json模块来解析JSON数据。下面是一个简单的例子: 在这个例子中,我们定义了一个字符串 json_str ,它包含了一个JSON对象的数据。我们使用json模块的loads函数将这个JSON字符串解析成了一个字典类型的数据。最后,我们打

    2024年02月16日
    浏览(39)
  • python爬虫数据解析xpath

    下载地址:百度网盘 请输入提取码 第一步: 下载好文件后会得到一个没有扩展名的文件,重命名该文件将其改为.rar或者.zip等压缩文件,解压之后会得到一个.crx文件和一个.pem文件。新建一个文件夹,将这两个文件放在该文件夹(本人将其命名为xpath-helper)内。 第二步: 将

    2024年02月10日
    浏览(40)
  • Python JSON 使用指南:解析和转换数据

    JSON 是一种用于存储和交换数据的语法。JSON 是文本,使用 JavaScript 对象表示法编写。 Python 有一个内置的 json 包,可用于处理 JSON 数据。 示例 :导入 json 模块: 如果您有一个 JSON 字符串,可以使用 json.loads() 方法来解析它。结果将是一个 Python 字典。 示例 :从 JSON 转换为

    2024年02月06日
    浏览(48)
  • 【python爬虫】给你分享几个日常生活中可以用到的爬虫小程序

    在这篇文章中,我们将分享7个Python爬虫的小案例,帮助大家更好地学习和了解Python爬虫的基础知识。以下是每个案例的简介和源代码: 这个案例使用BeautifulSoup库爬取豆瓣电影Top250的电影名称、评分和评价人数等信息,并将这些信息保存到CSV文件中。 这个案例使用正则表达式

    2024年02月05日
    浏览(56)
  • Python爬虫入门之爬虫解析提取数据的四种方法

    本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助。 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步加载、验证码、代理等高阶爬虫技术的爬虫方法。一般而言,基础爬

    2024年02月03日
    浏览(50)
  • 【基础】【Python网络爬虫】【6.数据持久化】Excel、Json、Csv 数据保存(附大量案例代码)(建议收藏)

    创建数据表 批量数据写入 读取表格数据 案例 - 豆瓣保存 Excel 案例 - 网易新闻Excel保存 数据序列化和反序列化 中文指定 案例 - 豆瓣保存Json 案例 - Json保存 写入csv列表数据 案例 - 豆瓣列表保存Csv 写入csv字典数据 案例 - 豆瓣字典保存csv 读取csv数据 案例 - 网易新闻csv

    2024年02月03日
    浏览(59)
  • 『python爬虫』06. 数据解析之re正则解析(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 Regular Expression, 正则表达式, ⼀种使⽤表达式的⽅式对字符串,进⾏匹配的语法规则(按照一定规则的查找) ⽹⻚源代码本质上就是⼀个超⻓的字符串, 用正则就好像是在我们的txt中查找指定

    2024年02月02日
    浏览(69)
  • Python 爬虫:教你四种姿势解析提取数据

    以经典的爬取豆瓣电影 Top250 信息为例。每条电影信息在 ol class 为 grid_view 下的 li 标签里,获取到所有 li 标签的内容,然后遍历,就可以从中提取出每一条电影的信息。 翻页查看url变化规律: start参数控制翻页,start = 25 * (page - 1) 本文分别利用正则表达式、BeautifulSoup、

    2024年01月16日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包