当前位置: 首页 > 知识库问答 >
问题:

python - 有pandas想求助大佬?

胡昊
2023-06-15

链接
https://gaokao.chsi.com.cn/zsgs/zhangcheng/listVerifedZszc
--infoId-4543757002,method-view,schId-1940.dhtml

有大佬知道<div class="content zszc-content UEditor">下的全部内容怎么用xpath获取吗?怎么写为word文档,求大佬告知,谢谢!
上面是文章链接

共有1个答案

公羊招
2023-06-15

你可以用Python 的 requests 和 lxml 库实现这个方案,我给你一段我学习时候看过的前人的代码(声明一下,这段代码大概是一年前在另外一个博客网站找pdf转word资料时候找到的,由于忘记链接了,所以备注形式表达对原创者的敬意)

import requests
from lxml import etree

url = 'https://gaokao.chsi.com.cn/zsgs/zhangcheng/listVerifedZszc--i...,method-view,schId-1940.dhtml'
response = requests.get(url)
html = response.content.decode('utf-8')
tree = etree.HTML(html)

# 使用 XPath 获取目标元素
content = tree.xpath('//div[@class="content zszc-content UEditor"]')[0]

# 将内容写入文件
with open('content.docx', 'w', encoding='utf-8') as f:
    f.write(etree.tostring(content, method='html', encoding='unicode'))

这段代码逻辑简单清晰,相信你也能了解的,当然如果网站本身有反爬机制,就得考虑其他办法了。
——————————————————————————————————————————————————————————————————
下划线:抱歉我误解了楼主的需求,对于获取 div 标签下所有子节点并将其写入 word 文档,可以如下方法操作
头文件中加一个
from docx import Document

然后写(这部分的目的是用前文回答中的XPath 获取整个内容所在 div 元素)

root = lxml.html.fromstring(html_content)
content_div = root.xpath('//div[@class="content zszc-content UEditor"]')[0]
nodes = content_div.xpath('node()')

最后是这部分的关键,目的是新建文档,遍历div元素读取到文档中,进行文本符号格式转换清洗整理数据,然后完成保存操作。我们命名保存文件为output。

doc = Document()
for node in nodes:
    if isinstance(node, lxml.etree._Element):
        element_html = lxml.html.tostring(node, pretty_print=True, encoding='unicode')
        element_html = element_html.strip()
        paragraph = doc.add_paragraph(element_html)
    else:
        paragraph = doc.add_paragraph(node)
doc.save('output.docx')
 类似资料:
  • 我有一个数据框('main'),大约有300列。我创建了一个较小的数据帧(“public”),并一直在致力于此。 现在我想从较大的数据框('main')中删除包含在'public'中的列。 我尝试了以下说明: http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.drop.html Python Pandas-在一个

  • 求助! 在继续阅读之前,需要知道Subversion使用中最重要的命令:svn help,Subversion命令行工具是一个自文档的工具—在任何时候你可以运行svn help SUBCOMMAND来查看子命令的语法、参数以及行为方式。 $ svn help import import: Commit an unversioned file or tree into the repository

  • 问题内容: 我正在处理一个大型文本文件(500k行),其格式如下: 我正在使用下面的代码返回每个系列的相关系数,例如S!_A16: 但是,在一些大文件上,这将返回错误: 我了解这与该声明有关,但是如何解决? 编辑 :这与最大行数有关。有谁知道如何容纳更多的行? 问题答案: 错误信息: 说负一个是TypeError。如果查看回溯中的倒数第二行,您会发现唯一的减法是 所以一定是。如果您进入857号线附

  • 问题内容: 和pandas和之间的区别是什么? 大小是否仅排除nil? 问题答案: 含值,:

  • Pandas是一个开源Python库,用于使用其强大的数据结构进行高性能数据处理和数据分析。 Python与pandas一起用于各种学术和商业领域,包括金融,经济,统计,广告,网络分析等。 使用Pandas,我们可以完成数据处理和分析中的五个典型步骤,无论数据来源如何 - 加载,组织,操作,建模和分析数据。 以下是Pandas的一些重要功能,专门用于数据处理和数据分析工作。 熊猫的主要特点 具有默

  • 问题内容: 使用样本数据: df 我试图弄清楚如何按key1分组数据并仅对key2等于“ one”的data1值求和。 这是我尝试过的 但这给了我一个数值为“无”的数据框 这里有什么想法吗?我正在寻找与以下SQL等效的Pandas: 提前致谢 问题答案: 首先按key1列分组: 然后为每个组取subDataFrame,其中key2等于“ one”并求和data1列: 为了解释发生了什么,让我们看一