第7课: bs4 库 的 BeautifulSoup 基础学习

本节课内容所需要安装的 库:

第一个:bs4 库
第二个:lxml 库

不会安装包库的请参考 《第4课:在 Pycharm 编译器里,如何安装库 模块 包》

BeautifulSoup 简介:

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.

点击进入 bs4: 官方中文文档

lxml 简介:

lxml是功能最丰富,最易于使用的库,用于以Python语言处理,解析,格式化 XML和HTML。

requests ,BeautifulSoup 和 lxml 相互三者关系:

在我们用用 requests 得到网站响应的请求,并且能获取请求的网页信息后,我们就需要 BeautifulSoup 来查找锁定你需要的信息。我们用 requests 的直接获

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
好的,以下是一个使用Requests、BeautifulSoup、NumPy、pandas、Matplotlib、jieba分词、WordCloud词云和pyecharts实现的股票分析Python代码: ```python import requests from bs4 import BeautifulSoup import numpy as np import pandas as pd import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt from pyecharts.charts import KLine from pyecharts import options as opts # 从新浪财经获取股票数据 def get_stock_data(stock_code): url = 'https://finance.sina.com.cn/realstock/company/{}/nc.shtml'.format(stock_code) response = requests.get(url) soup = BeautifulSoup(response.text, 'lxml') table = soup.find_all('table')[0] stock_data = pd.read_html(str(table), header=0)[0] stock_data = stock_data.set_index('日期') stock_data = stock_data.drop(['Unnamed: 7', '成交量'], axis=1) stock_data = stock_data.dropna() stock_data = stock_data.sort_index() return stock_data # 绘制K线图 def plot_kline(stock_data, title): kline_data = [] for index, row in stock_data.iterrows(): kline_data.append([index.strftime('%Y-%m-%d'), row['开盘价'], row['收盘价'], row['最低价'], row['最高价']]) kline = KLine() kline.add_xaxis([data[0] for data in kline_data]) kline.add_yaxis('K线图', kline_data) kline.set_global_opts(title_opts=opts.TitleOpts(title=title)) kline.render('kline.html') # 绘制词云图 def plot_wordcloud(stock_data, title): news_content = ' '.join(stock_data['新闻'].values.tolist()) words = jieba.cut(news_content) word_dict = {} for word in words: if len(word) > 1: word_dict[word] = word_dict.get(word, 0) + 1 wordcloud = WordCloud(background_color='white', width=800, height=600).generate_from_frequencies(word_dict) plt.figure(figsize=(10, 8)) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.title(title, fontsize=16) plt.show() # 获取股票数据 stock_data = get_stock_data('sh600519') # 绘制K线图 plot_kline(stock_data, '贵州茅台股票K线图') # 绘制收益率曲线 stock_data['收益率'] = stock_data['收盘价'].pct_change() plt.figure(figsize=(12, 6)) plt.title('贵州茅台股票收益率曲线') plt.plot(stock_data.index, stock_data['收益率']) plt.show() # 绘制新闻词云图 plot_wordcloud(stock_data, '贵州茅台股票新闻词云图') ``` 这个代码框架包括了从新浪财经获取股票数据、绘制K线图、绘制收益率曲线、绘制新闻词云图等功能。您可以根据自己的需求进行修改和扩展。需要注意的是,代码中需要使用jieba分词和WordCloud词云,需要先进行安装。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋哈哈呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值