栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 分析各大主流财经网关键词

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 分析各大主流财经网关键词

写在前面:此篇文章,也算是对于我个人而言,少部分在经济学习上的贡献吧。喜欢的就看看吧,不喜欢还请跳过。

环境说明:Windows10 + Python3.8.6 + Chrome

一、效果

此效果的原数据,分别来自以下网站:

  • 华尔街要闻
  • 金十数据
  • 第一财经
  • 同花顺财经
  • 新浪财经
二、实现 1. 安装库

安装下列库:

  1. selenium
  2. beautifulsoup4
  3. jieba
  4. matplotlib
  5. wordcloud

安装命令参考清华源安装命令(替换 some-package):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
2. 下载chromedriver.exe

下载地址:http://npm.taobao.org/mirrors/chromedriver/

注意事项:

  1. 下载的版本要与自己的 Chrome 浏览器版本相近,版本查询:chrome://settings/help
  2. 按照各自系统下载对应版本
3. 编写代码

将下载好的 chromedriver.exe 放到与程序放到同一目录下

实现步骤如下:

  1. selenium 爬取对应的网站数据
  2. beautifulsoup4 处理文本
  3. jieba 分词
  4. matplotlib + wordcloud 展示效果

代码参考:

from selenium import webdriver
from bs4 import BeautifulSoup

from matplotlib import pyplot as plt
from wordcloud import WordCloud
import jieba

'''
爬虫部分:
    1. 配置无界面模式
    2. 初始化 chromedriver
    3. 循环爬取每个网站的页面数据
    4. 通过 bs4 ,读取每个页面的文本
分词展示:
    1. 将获取到的文本中某些无效词组替换为空
    2. 通过 WordCloud 生成词云
    3. 使用 plt 展示效果
'''

options = webdriver.ChromeOptions()
options.add_argument('--headless')

driver = webdriver.Chrome(options=options)

text = ''  # 全部文本
urls = [
    'https://wallstreetcn.com/live/global',  # 华尔街要闻
    'https://www.jin10.com/',  # 金十数据
    'https://www.yicai.com/',  # 第一财经
    'http://news.10jqka.com.cn/today_list/',  # 同花顺财经
    'https://finance.sina.com.cn/'  # 新浪财经
]

for url in urls:
    driver.get(url)
    # bs4 获取页面文字 - 清除所有换行
    text += BeautifulSoup(driver.page_source, 'html.parser').get_text().replace('n', '')
# 关闭 chromedriver
driver.close()

# 无效文本词组 - 可自定义
ignores = [
    '年', '月', '日', '昨', '在', '的', '与', '天', '将', '等', '和', '了', '也', '是', '复制', '详情', '为', '财经', '更多', '分享'
]
for word in ignores:
    text = text.replace(word, '')

# jieba 分词
text = ''.join(jieba.cut(text))
# 词云处理
wc = WordCloud(
    font_path=r'C:WindowsFontssimkai.ttf',
    background_color='black',
    width=1000,
    height=800
)
wc.generate_from_text(text)
process_word = WordCloud.process_text(wc, text)

# plt 展示结果
plt.imshow(wc)
plt.axis('off')
plt.show()
三、展示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/688675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号