读取文字信息

这篇博客介绍如何利用Python的requests、re、json和docx库来获取并处理在线文档内容。通过调用get_document函数,并传入指定URL,可以读取网页上的文档并进行解析。
摘要由CSDN通过智能技术生成

import requests
import re
import json
from docx import Document

def get_document(url):

sess = requests.Session()

html = sess.get(url).content.decode("gbk")

# 抓取到文档标题

title = re.search('id="doc-tittle-0">(.*?)</span>', html).group(1)

# 使用正则提取 文档内容的url

res = re.search("WkInfo.htmlUrls = '(.*)'", html).group(1)

# \\x22是linux中的引号,替换成Python中的引号

res = res.replace("\\x22", "\"")

# 转成字典

data = json.loads(res)

document = Document()

string = ""

for i in data["json"]:

    url = i["pageLoadUrl"]  # 获取到url

    url = url.replace("\\", "")  # url中有转义符\去掉

    # 请求文档内容

    data = requests.get(url).content.decode("utf-8")

    # 提取文本数据

    res = re.search("wenku_\d*\((.*)\)", data, re.S).group(1)

    # 将json对象数据转成Python对象

    data = json.loads(res)
    # print(x if x!=None else 0 for x in data['body'] )
    print(data['body'] )
    # print(data['body'][0] )



    try:
        for i in data['body'] :

            # 判断数据是什么类型

            if i["t"] == "word":

                # 获取到文本

                string += str(i["c"])

                # ps中不为空并且_enter==1的时候是换行也就是一段内容

                if i["ps"] and i["ps"].get("_enter") == 1:
                    document.add_paragraph(string)  # 将一段内容写入到word

                    string = ""  # 重新复制 "" 表示新的一段文本
    except:
        pass

# 保存word

document.save(title + ".docx")

if name == ‘main’:
get_document(" ")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值