赞
踩
点击名片关注 阿尘blog,一起学习,一起成长
本文主要分享一个Python的开源库:Streamlit,Streamlit是一个web程序框架,我们可以不用学习前后端,不用去布置Django就可以更高效、更灵活的方式可视化数据并进行结果分析,可以帮助数据科学家和学者在短时间内开发机器学习 (ML) 可视化仪表板。只需几行代码,我们就可以构建并部署强大的数据应用程序,下面开始正文~
环境前提:python3.6+
pip install streamlit
创建一个python文件(streamlit_hello.py)然后导入Streamlit模块
- import streamlit as st
- st.set_page_config(page_title='测试一下',layout='wide')
- st.write('hello')
然后终端运行命令:
streamlit run streamlit_hello.py
第一次运行,会让你输入邮箱进行绑定,之后就不用了,
命令行出现
就会自动打开浏览器和网页,如果连接是蓝色的也可以自己点击,网页如下
下面简单来个实战,将我的爬虫代码,通过网页实现
需求:网页包含简介、pubmed文献爬取,等功能通过边栏选择分别进入不同页面
准备:python爬虫代码、streamlit相关库
首先:安装streamlit的菜单组件
pip install streamlit_option_menu
然后开始编辑网页
- from PubmedArticle_s import article_spider as sp
- import streamlit as st
- from streamlit_option_menu import option_menu
- import os
- import time
- #定义网页标题
- st.set_page_config(page_title='阿尘文献爬虫网站',layout='wide')
- #定义边栏导航
- with st.sidebar:
- choose = option_menu('阿尘的网站',['网站介绍','PubMed文献爬取','其他网站爬取'],
- icons=['house','book-half','book-half'])
incon可以访问:https://icons.bootcss.com/
然后根据不同导航定义页面,首先定义介绍的页面
- if choose == '网站介绍':
- # 定义页面标题
- st.title('欢迎来到阿尘的爬虫网站')
- # 写入文本
- st.write('这个网站用于爬取PubMed等相关医学文献,请严格按照说明使用,如果有问题请联系阿尘')
- st.write('本网站版权归阿尘微信公众号所有@阿尘blog')
在定义爬虫网页(仅展示部分)
- elif choose == 'PubMed文献爬取':
- # 定义一个输入框
- term1 =st.text_input('请输入查询关键词:',)
- # 实例化爬虫的类
- sp = sp()
- # 确保输入框不为空的时候才执行代码,不然会报错
- if len(term1) !=0 :
- term = sp.input_term(term1)
- # 这里定义了一个单选框,单选框默认选中第一个,
- # horizontal这个参数默认的是垂直展示选项,True就代表横向
- year = st.radio(
- '请勾选筛选年份,不勾选默认最近5年',
- ('空','1 year','5 year','10 year'),horizontal=True
- )
- if year == '1 year' and len(term1) != 0:
- year = '1'
- term = sp.input_term(term1)
- results1 = sp.send_request(term,year)[0]
- soup = sp.send_request(term,year)[1]
- total_page =int(sp.page_total(soup))
- st.write(f'查询结果一共有{total_page}页')
- if total_page > 1:
- want_page = int(st.text_input('请输入你想爬取的页数+1的数字:'))
- time.sleep(5)
- cost = want_page / 5
- st.write(f'本次爬取预计耗时{cost}分钟')
- st.write('文献爬取中请耐心等待...')
- if total_page >= want_page - 1:
- results2 = sp.next_page(term,want_page,year)
- results = results1 + results2
- results_list = sp.get_data(results)
- st.write('正在写入文件...')
- sp.write_data(results_list)
- st.write('爬取成功,点击按钮打开文件')
- # 定义一个按钮,用来打开文件
- if st.button('打开文件'):
- # 通过OS,调用系统命令,其实就相当于在终端输入命令
- os.system(r'D:/PythonProject/StreamlitArticle/article.csv')
- else:
- st.write('输入页码过大,请重新输入')
- else:
- results = results1
- results_list =sp.get_data(results)
- st.write('正在写入文件...')
- sp.write_data(results_list)
- st.write('爬取成功,点击按钮打开文件')
- if st.button('打开文件'):
- os.system(r'D:/PythonProject/StreamlitArticle/article.csv')
接下来,查看实际效果:
OK,是不是简单又很酷炫?其实这里才用了一点皮毛,官网有很多api,可以显示数据分析图、等等功能,包含这些字体,输入框限制等等都可以进行详细定制,一个感觉,简单强大,上手容易,时间有限,就分享到这里了,感兴趣可以去研究研究官方文档。
官方文档地址:
中文:http://cw.hubwiz.com/card/c/streamlit-manual/
英文:https://docs.streamlit.io/
扫描二维码关注阿尘blog,一起交流学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。