Python学习

64 阅读1分钟
文档爬取

import requestsimport jsonimport refrom docx import Documentdef get_document():    # 文库url    url = "https://wenku.baidu.com/view/68427629ed630b1c59eeb5ab.html?fr=search-1-aladdin_income1#"    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)        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 = ""  # 重新复制 "" 表示新的一段文本    # 保存word    document.save(title + ".docx")