从https://www.cqwu.edu.cn/channel_24893_03{}.html系列网站中爬取对应新闻的标题,存放在news.txt文件中,使用jieba和WordCloud库输出对应的词云图片。pyhon编写
时间: 2024-12-11 10:29:39 浏览: 7
Linux系统管理期中测试-参考答案.pdf
首先,让我们分步骤完成这个任务:
1. **网页抓取**:
使用Python的`requests`库获取网站的HTML内容,然后利用`BeautifulSoup`库解析HTML结构,找到新闻标题所在的元素。由于链接格式给出的是模板,你需要替换`{}`部分为实际的页面编号,例如`https://www.cqwu.edu.cn/channel_24893_030.html`。
```python
import requests
from bs4 import BeautifulSoup
def fetch_news_title(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title_elements = soup.find_all('h1', class_='news-title') # 假设标题在一个class为"news-title"的h1标签内
titles = [element.text.strip() for element in title_elements]
return titles
# 替换数字030为你需要爬取的具体页数
titles = fetch_news_title('https://www.cqwu.edu.cn/channel_24893_03{}html'.format('030')) # 请替换这里的数字
```
2. **保存新闻标题到文本文件**:
将抓取的标题写入`news.txt`文件。
```python
with open('news.txt', 'w', encoding='utf-8') as f:
for title in titles:
f.write(title + '\n')
```
3. **处理文本并生成词云**:
使用`jieba`库对文本进行分词,`wordcloud`库用于创建词云图片。
```python
import jieba
from wordcloud import WordCloud
# 分词
jieba.setLogLevel(0) # 防止日志干扰
text = '\n'.join(titles)
# 生成词云
wordcloud = WordCloud(font_path='simhei.ttf', width=800, height=600, background_color='white').generate(text)
# 保存词云图片
wordcloud.to_file('news_wordcloud.png')
```
记得替换上述代码中的字体路径为你的系统上存在的黑体字体文件(如`simhei.ttf`),以确保词云正常显示汉字。
阅读全文