在https://www.juhe.cn/docs/api/id/235获取新闻头条某板块的新闻列表,根据新闻列表里的新闻ID获取对应的内容,再统计新闻内容信息里的文字的出现次数排行用STReamlit框架展示
时间: 2024-11-22 17:41:08 浏览: 14
首先,要在Juhe API(https://www.juhe.cn/docs/api/id/235)上获取新闻头条并获取特定板块的新闻列表,你需要按照以下步骤操作:
1. 注册并获取API密钥:访问 Juhe官网(https://www.juhe.cn/),注册一个账号,然后申请新闻接口的权限,获取对应的API密钥。
2. 发送HTTP请求:使用 Streamlit 写一个程序,你可以用 Python 的 `requests` 库来发送 GET 请求。示例代码如下:
```python
import requests
import json
from streamlit import st
def get_news(api_key, news_id):
url = f"https://newsapi.juhe.cn/api/getNews?key={api_key}&type=json&cat=国内"
headers = {"Content-Type": "application/json"}
response = requests.get(url)
if response.status_code == 200:
data = response.json()
articles = data['result']['newslist']
article_content = [article['title'] for article in articles if article['id'] == news_id]
return article_content[0] if len(article_content) else None
else:
return "Error: Unable to fetch news"
# 将你的API密钥替换到下面这个变量
api_key = "your_api_key_here"
news_id = st.text_input("请输入新闻ID")
if news_id:
content = get_news(api_key, news_id)
if content:
word_counts = count_words(content)
# 统计词频...
st.write(f"新闻标题内容: {content}")
st.dataframe(word_counts) # 显示词频结果
else:
st.error("新闻ID无效或无法获取")
def count_words(text):
# 使用Streamlit的markdown功能暂时不做词频统计
# 实际应用中,可以使用collections.Counter或者nltk库进行统计
words = text.split() # 假设简单的分词
word_counts = {word: words.count(word) for word in words}
return word_counts
```
在这个例子中,我们假设用户输入了新闻ID后,会从列表中找到对应的文章标题,并计算其中的文字出现次数。注意实际的词频统计可能需要更复杂的文本处理库如NLTK或正则表达式。
阅读全文