今天在N1盒子上安装了 VS Code Server,简单的记录一下。

安装docker

  • Docker一键安装脚本
$ sudo wget -qO- https://get.docker.com/ | bash

$ # 如果上面的不行,执行下面两句
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

$ # 安装成功执行下面语句,如果有类似回显,说明安装成功
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
  • Docker相关操作
sudo systemctl start docker # 启动
sudo systemctl stop docker # 停止
sudo systemctl status docker # 状态
sudo systemctl enable docker # 设置开机启动

VSCode Server搭建

  • 下载源码部署
  1. 拉取最新版代码,地址:github.com/cdr/code-server
  2. 解压,cd到解压目录。
  3. 设置登录密码启动。
export PASSWORD="设置登录密码"
./code-server --host="0.0.0.0"
  1. 浏览器打开 http://ip:8080 输入设置好的密码即可使用。
  • Docker部署
docker run -it -d -p 8080:8080 \
  -v "$PWD:/home/coder/project" \
  -e PASSWORD='设置你的登录密码' \
  -u "$(id -u):$(id -g)" \
  codercom/code-server:latest

运行成功,访问http://ip:8080 输入设置好的密码即可使用。

汉化及其他插件

点击右侧的扩展图片,输入chinese下载简体中文语言包即可使用中文。

平常写个markdown文档或python什么的还是很方便的。

记录一下Linux设置Frp开机启动的方法

  • 在/etc/systemd/system下添加frps.service或frpc.service
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frpc/frpc -c /root/frpc/frpc.ini #启动命令根据自己情况填写目录
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frpc


[Install]
WantedBy=multi-user.target
  • 相关命令
systemctl enable frpc(frps) #设置开机启动
systemctl start frpc(frps) #启动
systemctl stop frpc(frps) #停止
systemctl status frpc(frps) #状态

  • Docker安装

    • 安装方法
      pull最新版本mongo

      docker pull mongo

    运行 --name设置名称 -v挂载数据 -p端口映射 -d后台运行

    mkdir ~/mongo #随便啦自己看着想放哪里都好
    docker run --name mongodb -v ~/mongo:/data/db -p 27017:27017 -d mongo

    设置用户进入mongodb容器进行设置

    docker exec -it mongodb bash
    mongo

    进入 admin 的数据库

    use admin

    创建管理员用户

    db.createUser({user: "admin",pwd: "pwd",roles: [ { role: "userAdminAnyDatabase", db: "admin"}]})

    创建有可读写权限的用户. 对于一个特定的数据库, 比如'demo'

    db.createUser({user: 'username',pwd: 'pwd',roles: [{role: "readWrite", db: "demo"}]})
    • 远程访问

      mongodb 的容器当中操作修改bindIP

      #更新源
      apt-get update
      # 安装 vim
      apt-get install vim
      # 修改 mongo 配置文件
      vim /etc/mongod.conf.orig
      # 修改bindIP为0.0.0.0
      bindIp: 0.0.0.0

      以上,就能远程访问MongoDB了。

例如python:

  • 安装pymongo
pip install pymongo
  • 连接MongoDB
myclient = pymongo.MongoClient("mongodb://username:password@ip:port/")
mydb = myclient["db"]
mycol = mydb["col"]
  • 增删改查
    这个无需多言

取cookies值

import requests
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

準備弄一個

def main():

# ! /usr/bin/env python
# coding=utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
time.sleep(3)

driver.find_element_by_link_text( '登入').click()
time.sleep(3)
driver.find_element_by_id( 'TANGRAM__PSP_10__footerULoginBtn').click()
time.sleep(3)
# 輸入賬號和密碼
driver.find_element_by_name( "userName").send_keys("dasdas")
driver.find_element_by_name("password").send_keys("passwprd")
time.sleep(20)
# 手動輸入驗證碼
driver.find_element("id", "TANGRAM__PSP_10__submit").click()
time.sleep(5)

# 獲取cookies值
cookies = driver.get_cookies()
print(cookies)
driver.quit()

pass

if name == '__main__':

main()

結果:

[ {'value': '828211617093E523BC5EDFE05AB3EA39:FG=1', 'expiry': 3651917680, 'path': '/', 'name': 'BAIDUID', 'httpOnly': False, 'secure': False, 'domain': '.baidu.com'},  {'value': '828211617093E523BC5EDFE05AB3EA39', 'expiry': 3651917680, 'path': '/', 'name': 'BIDUPSID', 'httpOnly': False, 'secure': False, 'domain': '.baidu.com'},  {'value': '1504433526', 'expiry': 3651917680, 'path': '/', 'name': 'PSTM', 'httpOnly': False, 'secure': False, 'domain': '.baidu.com'},  {'value': 'B490B5EBF6F3CD402E515D22BCDA1598', 'expiry': 1504520438, 'path': '/', 'name': 'BDORZ', 'httpOnly': False, 'secure': False, 'domain': '.baidu.com'},  {'value': 'eee17f0ccd81747c87f3b9e5f43712eb', 'expiry': 2556057600, 'path': '/', 'name': 'FP_UID', 'httpOnly': False, 'secure': False, 'domain': '.baidu.com'},  {'value': 'N2YTVzQX5aTWl4THpFWGhOMFp4VDk2T1MyQ0Z5bWRwRDMtcnhSN0lkQ1pZdE5aSVFBQUFBJCQAAAAAAAAAAAEAAAC~pSxhu-HF3LXE0NwyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJnVq1mZ1atZdk', 'expiry': 1763634068, 'path': '/', 'name': 'BDUSS', 'httpOnly': True, 'secure': False, 'domain': '.baidu.com'},  {'value': '1', 'expiry': None, 'path': '/', 'name': 'BD_HOME', 'httpOnly': False, 'secure': False, 'domain': 'www.baidu.com'},  {'value': '1439_12897_21089_22160', 'expiry': None, 'path': '/', 'name': 'H_PS_PSSID', 'httpOnly': False, 'secure': False, 'domain': '.baidu.com'},  {'value': '13314352', 'expiry': 1505298070, 'path': '/', 'name': 'BD_UPN', 'httpOnly': False, 'secure': False, 'domain': 'www.baidu.com'},  {'value': '1', 'expiry': 2450514070, 'path': '/', 'name': 'sugstore', 'httpOnly': False, 'secure': False, 'domain': '.www.baidu.com'} ]

剩下的如何取到登入的cookie,需要自己去嘗試,如果是開發中,就去問開發就行,更方便

利用cookie值,登入百度帳號

! /usr/bin/env python

coding=utf-8

from selenium import webdriver
import time

'''
利用cookies值登入百度
{'value': 'N2YTVzQX5aTWl4THpFWGhOMFp4VDk2T1MyQ0Z5bWRwRDMtcnhSN0lkQ1pZdE5aSVFBQUFBJCQAAAAAAAAAAAEAAAC~pSxhu-HF3LXE0NwyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJnVq1mZ1atZdk',
'expiry': 1763634068,
'path': '/',
'name': 'BDUSS',
'httpOnly': True,
'secure': False,
'domain': '.baidu.com'}
'''
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
time.sleep(3)

設定cookies值,基本格式

c1 = {'value': 'N2YTVzQX5aTWl4THpFWGhOMFp4VDk2T1MyQ0Z5bWRwRDMtcnhSN0lkQ1pZdE5aSVFBQUFBJCQAAAAAAAAAAAEAAAC~pSxhu-HF3LXE0NwyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJnVq1mZ1atZdk',

'expiry': 1763634068, 
'path': '/', 
'name': 'BDUSS', 
'httpOnly': True, 
'secure': False, 
'domain': '.baidu.com'}

新增cookies

driver.add_cookie(c1)
time.sleep(3)

重新整理之後觀察是否已經登入成功

driver.refresh()
time.sleep(5)

driver.quit()
  

说明

临近双旦及春节网络上各种推广送钱的活动愈来愈多,平常有时候也能薅个早晨钱,但是很多时候碰到红包与你擦肩而过也有些许淡淡的忧伤。

所以用python写了一个小爬虫,爬取线报推送到微信群或电报群,最近学flask就写个简单的展示页面练练手。

最终效果及演示

  • 效果图
    项目演示
  • 演示地址

https://skystudy.herokuapp.com/

由于只是需要提醒就没有写采集内容,看内容还是跳转到源站查看。

  • 电报群提醒
    貌似电报群之家抓取的文字就不用跳转源站了。--

电报群的提醒

  • 微信群提醒
    微信群的提醒

部署过程

原本在本地使用sqlite,后来部署到heroku使用其提供的免费10000条的postgresql。

另外在vps上也部署了一个用的宝塔面板里面的python部署工具也很简单的部署好了flask+MySQL的。