有pandas想求助大佬?

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

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

有pandas想求助大佬?


回答:

你可以用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')


回答:

用BeautifulSoup4会更轻松点,不需要用到xpath
pip install BeautifulSoup

from bs4 import BeautifulSoup

...

...

html = resp.content

soup = BeautifulSoup(html)

target = soup.find('div', attrs={'class': 'content zszc-content UEditor'})

print(target.text)

以上是 有pandas想求助大佬? 的全部内容, 来源链接: utcz.com/p/938946.html

回到顶部