python 爬取文本内容并写入json文件

背景: 项目需要从html 提取说明书目录

实现: 由于html是包含所有内容,所以将其中目录部分手动重新生成一个html 文件dir26.html

python

python 复制代码
import requests
from bs4 import BeautifulSoup
import json

filename = "dir26.html"  # 替换为实际的文件路径
with open(filename, "r") as file:
    html = file.read()
    soup = BeautifulSoup(html, "html.parser")

results = soup.find_all('div') # 根据需要修改选择器
# print("soup:",soup)
# print("results:",results)

# 提取数据并转换为JSON格式
data = []
for result in results:
    #print(result.text)
    resulttext = result.text
    directory = resulttext.split(" ")[0] // 取第一个空格之前的内容
    print(directory)
    page = resulttext.split(" ")[2]//取第三个空格之前的内容
    print(page)
    data.append({'directory': directory, 'page': page})

# 写入JSON文件
with open("manualdir.json", "w") as file:
    json.dump(data, file, ensure_ascii=False)

android中读取Json 中的内容代码:

java 复制代码
// 存储Json中的信息
private LinkedHashMap<String, String> mDirMap = new LinkedHashMap<String, String>();
private void initDirectory() {
        byte[] buffer;
        try {
            //将json文件读取到buffer数组中
            InputStream is = 
                 getContext().getResources().getAssets().open("manualdir.json");
            buffer = new byte[is.available()];
            is.read(buffer);
        } catch (IOException e) {
            Log.w(TAG, "manual dir json IOException e:" + e);
            return;
        }

        //  将字符数组转换为UTF-8编码的字符串
        String json;
        try {
            json = new String(buffer, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            Log.w(TAG, "manual dir json UnsupportedEncodingException e" + e);
            return;
        }

        //将字符串json转换为json对象,以便于取出数据
        try {

            JSONArray jsa = new JSONArray(json);
            for (int i = 0; i < jsa.length();i++){
                JSONObject jso = jsa.getJSONObject(i);

                Log.w(TAG, " jsa.length():" +  jsa.length());
                String title = jso.optString("directory");//标题
                Log.w(TAG, "title:"+title);
                int page = jso.optInt("page");//目录页数
                mDirMap.put(title, "#pf"+Integer.toHexString(page));
            }
        } catch (JSONException e) {
            Log.w(TAG, "manual dir json exception e:"+e);
        }
    }
相关推荐
一水鉴天18 分钟前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel36 分钟前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
海绵宝宝转agent1 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭1 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT1 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071572 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境3 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
\光辉岁月/3 小时前
5.java-数组
java·开发语言
Java后端的Ai之路3 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数