访问古诗文网站(https://so.gushiwen.org/mingju/)编写网络爬虫程序,爬取名句页面的内容,保存到一个文本文件中,然后,再爬取每个名句的完整古诗页面,把完整古诗保存到一个文本文件中
时间: 2024-12-01 18:19:44 浏览: 1
访问古诗文网站并编写网络爬虫程序来抓取内容通常需要使用一些基础的编程技术和库,如Python中的BeautifulSoup、Requests等。以下是简单的步骤概述:
1. **安装必要的库**:
- 首先,确保已安装`requests`库来发送HTTP请求获取网页内容,如果没安装可以运行 `pip install requests`
- 可能还需要`beautifulsoup4`库处理HTML解析,如果没有安装则输入 `pip install beautifulsoup4`
2. **分析网页结构**:
- 打开名句或古诗页面,查看其HTML结构,找出包含你需要数据的部分,比如名句标题、诗句等内容。
3. **制定爬取策略**:
- 设计一个函数来遍历名句列表页,提取每个名句的链接。
- 对于每个名句链接,再次发送GET请求,并解析出完整的古诗内容。
4. **编写爬虫脚本**:
```python
import requests
from bs4 import BeautifulSoup
# 爬取名句页面
def get_mingju(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
titles_and_links = soup.find_all('div', class_='title') # 示例,假设名句标题在class为'title'的div中
with open('mingju.txt', 'a', encoding='utf-8') as f:
for title in titles_and_links:
title_text = title.text
link = title.find('a')['href']
f.write(title_text + "\n" + link + "\n\n")
# 爬取古诗页面并保存
def get_gushi(link):
gushi_url = "https://so.gushiwen.org/" + link
gushi_response = requests.get(gushi_url)
gushi_soup = BeautifulSoup(gushi_response.text, 'html.parser')
poem = gushi_soup.find('div', class_='content') # 示例,假设古诗在class为'content'的div中
full_poem = poem.get_text()
with open('gushi.txt', 'a', encoding='utf-8') as f:
f.write(full_poem + "\n\n")
# 调用函数开始爬取
base_url = "https://so.gushiwen.org/mingju/"
main_page = requests.get(base_url)
soup = BeautifulSoup(main_page.text, 'html.parser')
mingju_links = soup.find_all('li', class_='list-item') # 示例,假设名句链接在class为'list-item'的li元素中
for link in mingju_links:
get_mingju(base_url + link['href'])
get_gushi(base_url + link['href'])
5. **保存结果**:
- 运行完上述代码后,你会发现两个文本文件'mingju.txt' 和 'gushi.txt',分别包含了名句及其链接和完整的古诗。
6. **注意事项**:
- 尽量遵守网站的robots.txt规则,避免频繁请求导致封IP。
- 使用代理IP或设置延迟,提高爬虫的可持续性。
阅读全文