python selenium 爬虫脚本示例

环境要求

1、安装 python3 环境后,用 pip 安装 selenium 包:pip install selenium

2、安装 Google Chrome 浏览器,我安装的版本是:89.0.4389.90(64 位)

3、安装 chromedriver,可以从国内镜像下载 https://npm.taobao.org/mirrors/chromedriver 。注意,上图 Chrome 浏览器的主板号是89,下载的 chromedriver 主版本号要一致...

分类至 Python
0条评论

php 时区对 strtotime 函数的影响

来看两段代码

代码1(时区设为巴黎):...

代码2(时区设为上海):...

已知巴黎时区比上海时区慢7个小时,对比两段代码的执行结果,两个 $time1 格式化后显示没有问题,$time2 格式化后显示也是差7个小时。然而,同样是 +30 day,两个 $time2 的时间戳却不同,相差了3600秒,也就是1小时。

分类至 PHP
0条评论

python 脚本输出时禁用缓冲区

在 linux 系统上运行 python 脚本时,做了输出重定向,如:

python3 script.py > out.log &

实际运行时,脚本的输出并没有实时输出到 out.log 里面。因为后台运行 python 程序输出会先输出到缓冲区,等缓冲区满或者脚本结束后再输出。

想要实时输出,加个 -u 参数即可:

python3 -u script.py > out.log &

这个 -u 也可以加在 script.py 脚本头部:#!/usr/bin/python3 -u

分类至 Python
0条评论

mb_substr 编码问题

PHP 中 mb_* 系列函数用于处理多字节字符串,平时比较常用就是字符串截取 mb_substr,可以有效规避中文字符串截取的乱码问题。

mb_substr 的格式为:

mb_substr( string $str, int $start[, int $length = NULL[, string $encoding = mb_internal_encoding()]] ) : string

第4个参数 encoding 为字符编码。如果省略,则使用内部字符编码。

那么,这个“内部字符编码”是什么呢?我们可以通过函数 mb_internal_encoding 设置和获取...

分类至 PHP
1条评论

Docker 以指定用户身份进入容器

平时习惯这样进入 php-fpm 容器:

$ docker exec -it php-fpm bash

进去以后,默认是 root 帐号。

现在有些指令想用 www-data 帐号来执行,切换 www-data 帐号时却提示该帐号未启用:

$ su www-data
This account is currently not available.

 

分类至 Docker
1条评论

Docker 容器挂载数据卷出现 Permission denied 权限问题的解决办法

问题原因及解决办法
原因是CentOS7中的安全模块SELinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:

1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数。使用该参数,容器内的root拥有真正的root权限。否则,容器内的root只是外部的一个普通用户权限

  $ docker run --name study_mysql --privileged=true -p 3306:3306  -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e  MYSQL_ROOT_PASSWORD=123456 -d  mysql:latest

2.临时关闭SELinux:
setenforce 0

3.添加SELinux规则,改变要挂载的目录的安全性文本
可参考:http://www.bubuko.com/infodetail-2075102.html

分类至 Docker
0条评论

certbot-auto 一直卡在“Installing Python packages…”解决方法

使用 certbot-auto 自动部署 ssl 时,常常遇到一直卡在“Installing Python packages…”的情况,最简单有效的解决方法是:

1、下载文件

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

2、编辑 certbot-auto 中的下载链接

vim certbot-auto
输入 :/DEFAULT_INDEX_BASE 查询,或则直接往后翻到1607行,可以看到一行信息:DEFAULT_INDEX_BASE = 'https://pypi.python.org

分类至 杂项
1条评论

你了解 Redis 的三种集群模式吗?

最近在面试过程中被面试官问到 Redis 集群数据是如何复制的,由于之前没有准备直接懵了。
事后查了查这个问题其实也挺简单,如果你之前也不知道,没问题,赶紧浅尝辄止,速度3遍即可入门。

阅读本文,你可能会有哪些收获呢?

  • 首先,你会知道有三种集群模式
  • 然后对每种集群模式的原理有个大概了解
  • 当然还能看到集群演变的影子
  • 最后还会有手把手的实操

Redis 支持三种集群方案

  • 主从复制模式
  • Sentinel(哨兵)模式
  • Cluster 模式
分类至 杂项
0条评论

Redis 集群添加节点和删除节点

上一篇我们讲述了《Docker 快速搭建 Redis 集群》,本篇我们将继续讲述 Redis 集群添加节点和删除节点。

之前搭建集群的时候,已经创建了6个 Redis 实例,在原基础上再加2个实例,配置文件 docker-compose.yml 如下...

分类至 杂项
0条评论