前言
- 如果你和我一样不喜欢电脑里面一堆py文件和小脚本,请往下看
- 如果你是个学生并且有每天网上签到打卡的任务,请往下看,或许有帮助
- 如果你单纯只是想知道如何在云上配置jupyter notebook,也可以看看,这里给你最快最准确的配置过程。在你可能遇到问题的地方给你帮助。
配置jupyter notebook
一.购买云服务器
我推荐阿里云或腾讯云
服务器选择安装linux系统的服务器,不是的话可以在控制台里面重装系统(当然是服务器没什么重要文件的情况下)
以下以腾讯云的Ubuntu系统为例。
它的默认用户名为ubuntu,第一次连接服务器需要在腾讯云控制台需要重置密码
二.通过ssh连接服务器
ssh在windows系统中自带,cmd里面输入以下命令
ssh ubuntu@你的公网IP
然后输入密码
这是连接成功的效果图
@后面是你的主机名,前面是你的用户名
~代表用户文件夹(这是就是/home/ubuntu的意思)
$后面就是输命令的地方
三.安装pip
首先Ubuntu系统默认安装了python3和python2,下面只要安装pip和pip3即可
sudo apt-get install python3-pip
sudo apt-get install python-pip
安装好了之后推荐使用pip3安装各种包,pip安装可能会安装到python2
若显示
Unable to locate package python3-pip3
可以试试
sudo apt-get update
四.开始配置jupyter notebook
安装jupyter
sudo pip3 install jupyter
生成jupyter notebook的配置文件,这个很重要
jupyter notebook --generate-config
这个命令会在~/.jupyter
文件夹里面生成一个叫jupyter_notebook_config.py
的文件
~其实就是/home/ubuntu的意思,之后不再赘述。
我们cd到~/.jupyter
文件夹,用vi打开打开jupyter_notebook_config.py
cd .jupyter/
vi jupyter_notebook_config.py
- 插一句话,如果你不会vi编辑文件,那你就必须看看,首先你头次进入文件,光标处只能移动不能输入。按下
i
键,左下角出现Insert字样,说明进入insert模式,这样你就可以尽情输入。按下Esc
键退出insert模式,然后再输入:wq
再回车表示写入并退出
打开之后里面一堆注释,说明了每项配置项的意义,你只需在文件最前面输入以下配置
c.NotebookApp.ip = '*'
#所有绑定服务器的IP都能访问,必须设置
c.NotebookApp.port = 8888
#端口设置,这个需要在控制台防火墙设置里面开放这个端口
c.NotebookApp.open_browser = False
#不在服务器的浏览器中打开jupyter notebook项目
c.NotebookApp.notebook_dir = '/home/ubuntu/jupyter_projects'
#这里是设置Jupyter项目的根目录
c.NotebookApp.allow_root = True #
#c.NotebookApp.password = 这个先注释掉,根据你的需求来添加,在后面提到
保存并退出vi
注意项目地址/home/ubuntu/jupyter_projects
的前缀/home/ubuntu
是你的家目录
我们需cd到家目录并且创建文件夹jupyter_projects
cd ~
mkdir jupyter_projects
之后还需在控制台防火墙设置上开放8888
五.启动jupyter notebook项目
测试启动,输入以下命令
jupyter notebook
然后在你的浏览器上输入你的公网IP:8888
,看是否可以访问,如果可以那么恭喜你,你已经成功95%!!!当然这时你需要输入token
(在控制台上看的到)开始随时编辑python代码和持久地挂起你的python脚本
但这时你在本地关闭控制台就会导致云上运行jupyter notebook项目关闭,所以你需要将项目在后台运行
nohup jupyter notebook &
随后会提醒你,项目的所有信息和日志将会输出在一个叫nohup.out
文件内。
nohup: ignoring input and appending output to 'nohup.out'
六.设置访问密码
进入网站要输入token
就很麻烦,所以自己设置password就比较好。
1.调用python包,生成sha字符串
键入
python3
进入python,输入以下代码
from IPython.lib import passwd
passwd()
Enter password:
Verify password:
这里会输入一串sha字符串(假设为sha1:xxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxx)
exit()#退出python
2.修改配置文件
cd至/.jupyter
文件夹,用vi打开打开jupyter_notebook_config.py
,修改一行,记得去掉前面的#
号
c.NotebookApp.password = u'sha1:xxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxx'
这个u
不能少
3.测试访问
在你的浏览器上输入你的公网IP:8888
成功效果图
介绍一点用处
这里介绍如何用它来实现每日签到打卡
首先需要很多前置知识,当然python基本语法必须了解
流程
假设你已经学完或知晓上述知识,下面简单说说流程
0、建立一个ipynb文件
1、构造请求
假设我们已经抓到签到请求,我们主要关注它的Url(请求链接),Requests headers(请求头),Form Data(表单数据)三个部分
在模拟请求时,我们可能需要完全模拟Requests headers(请求头),因为里面的cookies信息记录了你的登录状态和身份,一般在电脑端模拟登录很麻烦,所以直接复制其Requests headers(请求头)是一种无奈但有效的方法,但是有些网站它的cookies是有时效的,就比较麻烦了。
然后就是Form Data(表单数据),里面记录了你需要提交的信息
比如名字、学号、体温…
这个也是模仿就行
假设这么一个函数
def job(headers , data):
r = requests.post(
url:xxxxx,
headers:headers,
data:data
)
#print(r.text) 调试的时候用
2、设定每日任务
利用schedule实现
schedule.every().day.at("08:30").do(job, headers,data)
while True:
schedule.run_pending()
time.sleep(1)
将这些代码运行起来后,你只需关闭网页,安心去睡觉就行了