在更改 SQLAlchemy Session 从每次请求都创建到共享同一个 Session 之后遇到了如下问题:
StatementError: (sqlalchemy.exc.InvalidRequestError) Can’t reconnect until invalid transaction is rolled back [SQL: ]
或者是
raised unexpected: OperationalError(“(_mysql_exceptions.OperationalError) (2006, ‘MySQL ser
Read more ...
记录一些 SSH 相关的内容,经常使用。
SSH 是 Secure Shell 的缩写,是一个应用层的加密网络协议,它不只可以用于远程登录,远程命令执行,还可用于数据传输。
当然它由 ssh Client 和 ssh Server 端组成,有很多实现,Ubuntu 上就默认安装的 OpenSSH, Client 端叫做 ssh, Server 端叫做 sshd. OpenSSH 只用来做远程登录和命令执行。
免密登录
查看本地 ~/.ssh/ 目录是否有 id_rsa.pub,如果没有,在本地创建公钥
ssh-keygen -t rsa
一
Read more ...
MySQL 命令行操作相关内容,防止遗忘。MySQL 常用命令记录,总结。
安装
Under Ubuntu
sudo apt update
sudo apt-get install mysql-server
sudo mysql_secure_installation
如果安装过程中没有弹出设置密码的对话,那么可以在安装完成后执行:
sudo mysql_secure_installation
来设置密码,及一些安全的设置。之后就可以用
sudo mysql -u root -p
来登录。
启动停止 MySQL 服务
可以使用如下
Read more ...
首先随便看看 Python 的镜像 就能看到非常多的版本,这些版本怎么选择呢。
首先解释几个常见的名词,其实都是 Linux 的发行版本
Stretch Debian 9
Jessie , 指的是 Debian 8
Wheezy Debian 7
Alpine 轻型 Linux 发行版
其次基于不同版本系统制作的镜像自身大小都有区别,比较精简的 python:2.7-slim 可能也要比 python:2.7-alpine 来的大。
Read more ...
最原始的 Scrapy 项目是只能将爬虫部署到单机上,如果要实现分布式爬虫就需要手动去维护一个待抓取的列表,那么 scrapy-redis 项目就是这样一个存在。
特性:
分布式抓取,可以部署多个 spider 实例,共享同一个 redis 队列
分布式后处理,抓取的内容会放到一个队列中,这样就意味可以开启足够多的实例来处理结果
提供了即插即用的组件,包括定时,去重,等等
Scrapy 的局限
Scrapy 已经能够满足大部分爬虫的需要,但是有一些场景 Scrapy 并不适用。
对于页面数量比较少的站点,并不需要 Scrap
Read more ...
VMware Workstation 12 虚拟机,适用于 RHEL/CentOS 7, Fedora 20-24, Debian 7-9, Ubuntu 16.04-14.14 and Linux Mint 17-18.
Prerequisites
确保系统 64 位
VMware 12 不支持 32 位 CPU
确保有 root 权限
安装
更新
apt-get update && apt-get upgrade # On Debian Systems
下载
wget 'http://www.vmwa
Read more ...
在学习 Flask 时接触 flask-rq2,然后知道了 python-rq 因为之前使用过 Celery ,所以对 python-rq 倒也没有多大的困惑。因为 python-rq 只依赖于 redis,相较于 Celery 轻量很多,如果在 Flask 中不需要非常繁重的后台任务队列(比如只有发送注册邮件任务)可以考虑使用 python-rq,毕竟有 flask-rq2 为 Flask 度身定做,结合 Flask 要比 Celery 容易很多。
RQ (Redis Queue) is a simple Python library for
Read more ...
tcpdump 是一个运行在命令行下的抓包工具,如果想知道网络中有什么在流通,那么 tcpdump 就是一个很好的工具。它允许用户拦截和显示发送或收到过程中网络连接到该计算机的 TCP/IP 和其他数据包。tcpdump 适用于大多数的类 Unix 系统操作系统(如 Linux,BSD 等)。类 Unix 系统的 tcpdump 需要使用 libpcap 这个捕捉数据的库就像 Windows 下的 WinPcap。
tcpdump 可以识别的协议有:
ARP
RARP
ICMP
TCP
UDP
IP
IPv6
App
Read more ...
Scrapy 是纯 Python 实现的爬虫框架(scraping and crawling framework),可以非常轻松地提取网页结构信息。最初设计时 Scrapy 仅仅作为网页抓取工具,但因其功能强大,配置简单,逐渐的被扩大使用范围,也经常被用于以下方面:
数据挖掘 Data Mining
信息处理 information processing
历史信息存储 historical archival
检测及自动化测试 monitoring and automated testing
因为网上的教程已经非常详细了,这里就重点
Read more ...
记录一下使用过程,留备以后使用。
pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,在系统中安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。
pyenv 的一个典型使用场景就是,比如一个老项目需要使用 Python 2.x ,而另一个新项目需要 Python 3.x 。而 virtualenv 主要是用来管理相同版本 Python 不同项目的包的依赖不同的问题,
Read more ...