爬取名句页面的内容,并将这些内容保存到一个文本文件中,进一步地,对于每个名句,将爬取其对应的完整古诗页面,并将完整古诗也保存到一个文本文件中,的代码
时间: 2024-09-30 19:13:18 浏览: 39
基于Python实现中华传统文化内容爬取源码+项目说明.zip
5星 · 资源好评率100%
在Python中,你可以使用BeautifulSoup库来解析HTML并抓取网页内容,以及requests库来发送HTTP请求获取页面。这里是一个基本示例,展示了如何爬取名句页面和古诗页面并将它们保存为文本文件。注意这只是一个基础框架,实际操作可能会因为目标网站结构的变化而需要调整。
```python
import requests
from bs4 import BeautifulSoup
# 目标URLs
quote_url = 'https://example.com/namesentences' # 名句页面URL
poem_url_template = 'https://example.com/poems/{id}' # 古诗页面ID格式
def scrape_quotes():
response = requests.get(quote_url)
soup = BeautifulSoup(response.text, 'html.parser')
quotes_list = []
for quote in soup.find_all('div', class_='quote'): # 假设名句在class为'quote'的元素里
quote_text = quote.get_text()
id = quote.find('a')['href'].split('/')[-1] # 获取名句链接中的诗句ID
poem_file_path = save_poem(id) # 保存古诗函数
quotes_list.append((quote_text, poem_file_path))
with open('quotes.txt', 'w', encoding='utf-8') as f:
for quote, poem_path in quotes_list:
f.write(f'{quote}\n{poem_path}\n')
def save_poem(poem_id):
poem_response = requests.get(poem_url_template.format(id=poem_id))
poem_soup = BeautifulSoup(poem_response.text, 'html.parser')
full_poem = poem_soup.find('pre', class_='full-poem').get_text() # 假设古诗在class为'full-poem'的元素里
poem_file_path = f'poem_{poem_id}.txt'
with open(poem_file_path, 'w', encoding='utf-8') as f:
f.write(full_poem)
return poem_file_path # 返回诗句路径以便于引用
scrape_quotes()
```
在这个例子中,你需要替换`quote_url`和`poem_url_template`为你实际的目标网址。另外,这个代码假设了特定的HTML结构,如果实际网页结构不同,你需要相应地修改`find_all`和`find`的参数。运行完这个脚本后,你会得到两个文件:`quotes.txt`和一系列以`poem_`开头的文本文件,分别存储了名句和对应完整的古诗。
阅读全文