用python将html根据div标签转换为word,并将第一行标题作为文件名
时间: 2023-02-24 10:12:17 浏览: 465
您可以使用 python 库如 python-docx 来实现将 HTML 转换为 Word 文档。
以下是示例代码:
```python
import re
from bs4 import BeautifulSoup
import requests
import docx
def html_to_word(html, file_name):
soup = BeautifulSoup(html, 'html.parser')
divs = soup.find_all('div')
doc = docx.Document()
for div in divs:
doc.add_paragraph(div.text)
doc.save(file_name + '.docx')
url = '<your html url>'
html = requests.get(url).text
file_name = re.findall(r'<h1>(.*?)</h1>', html)[0]
html_to_word(html, file_name)
```
在这段代码中,我们使用了 BeautifulSoup 库来解析 HTML 文件,然后通过获取所有的 div 标签并将其文本添加到 Word 文档中来实现将 HTML 转换为 Word。
同时,我们还使用了正则表达式从 HTML 文件中提取标题,并将其作为 Word 文档的文件名。
相关问题
使用requests或urllib库,以及bs4库爬取https://www.gdqy.edu.cn/gqxw1.htm网页内容。 爬取包括: 1、广轻新闻,即从以下入口进去的所有新闻 爬取的新闻内容以及保存方式: 1、爬取的内容 所有新闻只抽取有效的“标题”,“正文”文本内容,以及本新闻的url地址,其他内容忽略。 2、保存形式 将所有爬取的内容保存到gdqy目录中。 每条新闻保存到一个文件中,文件名以递增数字为文件名,后缀为.txt。比如第一条新闻保存到1.txt,第二条保存到2.txt。 在保存的文件中,第一行为url地址,第二行为标题(如无标题则是空行),第三行及之后是此新闻的正文内容。
好的,我已经了解您的要求。这是一个简单的Python爬虫项目,需要用到requests、urllib和BeautifulSoup(bs4)库。您可以在终端或命令行中输入以下命令来安装这些库:
```
pip install requests
pip install urllib
pip install bs4
```
接下来,您可以使用以下代码来爬取并保存网页内容:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://www.gdqy.edu.cn/gqxw1.htm'
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html, 'html.parser')
# 获取所有新闻链接
news_links = [a['href'] for a in soup.find_all('a', class_='tit')]
# 爬取并保存每条新闻
for i, link in enumerate(news_links):
news_url = url.rsplit('/', 1)[0] + '/' + link # 构造新闻链接
news_response = requests.get(news_url)
news_html = news_response.content
news_soup = BeautifulSoup(news_html, 'html.parser')
# 获取新闻标题和正文内容
title = news_soup.find('h1').text
content = '\n'.join([p.text.strip() for p in news_soup.find_all('div', class_='TRS_Editor')[0].find_all('p')])
# 保存新闻内容到文件
with open(f'gdqy/{i+1}.txt', 'w', encoding='utf-8') as f:
f.write(news_url + '\n')
f.write(title + '\n')
f.write(content)
```
这段代码会先获取https://www.gdqy.edu.cn/gqxw1.htm页面中所有新闻的链接,然后遍历每个链接,爬取对应新闻的标题和正文内容,并将它们保存到以递增数字为文件名的txt文件中,文件保存在gdqy目录中。
希望能帮助到您!
将所有爬取的内容保存到目录中。 每条新闻保存到一个文件中,文件名以递增数字为文件名,后缀为.txt。比如第一条新闻保存到1.txt,第二条保存到2.txt
好的,你可以使用以下 Python 代码实现:
```python
import os
import requests
from bs4 import BeautifulSoup
def save_news(url):
# 发送 HTTP 请求,获取网页内容
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 解析网页,获取新闻标题和正文内容
title_tag = soup.find('h1')
if title_tag is None:
title = ''
else:
title = title_tag.get_text().strip()
content_tags = soup.find_all('div', class_='content')
content = '\n'.join([tag.get_text().strip() for tag in content_tags])
# 生成保存文件的路径和文件名
dir_path = 'news'
if not os.path.exists(dir_path):
os.makedirs(dir_path)
file_name = f'{len(os.listdir(dir_path)) + 1}.txt'
file_path = os.path.join(dir_path, file_name)
# 将新闻内容写入文件
with open(file_path, 'w', encoding='utf-8') as f:
f.write(url + '\n')
f.write(title + '\n\n')
f.write(content)
if __name__ == '__main__':
urls = [
'https://www.example.com/article/1',
'https://www.example.com/article/2',
'https://www.example.com/article/3'
]
for url in urls:
save_news(url)
```
你可以将需要爬取的网页 URL 存放在 `urls` 列表中,然后运行代码即可将新闻内容保存到 `news` 目录中。每条新闻保存在以递增数字为文件名的 `.txt` 文件中,文件名为新闻的标题。其中,第一行为新闻的 URL,第二行为新闻标题,第三行及之后为新闻的正文内容。
阅读全文