最近在学Python,简单看了点特性和基础语法就开始自己写一个爬虫,目标是爬本博客。
项目github地址
因为写的时候参考的是github上的CrawlerHot爬虫项目,里面用到了with as语法写入文件,
开始只是初略了解到了如果用with as写文件的话是不需要file.close()。
然后继续跟着项目用了with as来执行ThreadPoolExecutor开线程来执行任务,但是没有深入了解为什么。
原.png
根据上图81行我原本是执行了shutdown(),但后面经网友指点了下with as的话是需不需要pool.shutdown()的,因为上下文管理器会自动帮你执行。
我就想上下文管理器是个什么? 但是感觉和之前写入文件时不需要file.close()有异曲同工之妙。

- 阅读剩余部分 -

需求

用户每日点击签到,获得x积分;用户连续签到y天后额外获得z积分。
x,y,z分别由后台配置。
需要记录用户今天是否已签到当前连续签到数本月签到列表数据供前端展示

表结构

CREATE TABLE `sign_in_logs` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
      `year` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '年',
      `month` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '月',
      `date_list` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '签到日期列表(按位储存)',
      `count` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '累计连续签到的天数,到一定数量后清零',
      `last_date` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '上一次签到的日期',
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `sign_in_logs_user_id_index` (`user_id`),
      KEY `sign_in_logs_year_month_index` (`year`,`month`),
      KEY `sign_in_logs_date_list_index` (`date_list`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

- 阅读剩余部分 -

之前在VPS和树莓派均安装过aria2做下载机
有些步骤需要使用以下指令重新加载aria2配置启动

[[email protected] ~]# aria2c --conf-path=$CONF_PATH/aria2.conf -D

比如使用脚本更新配置文件的bt-tracker,然后使用corntab执行以上命令重新加载配置并启动
而最近在树莓派上想换下RPC的密码,使用以上指令后发现配置没有更新
最后发现需要kill掉aria2的进程才能加载到新的配置

- 阅读剩余部分 -

续上回安装完python和pip后就开始拉代码,执行数据库迁移
在执行迁移的时候出现以下错误:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

缺少了Mysql模块,pip安装即可
ps:最新安装的是mysqlclient 而非 pymysql

[[email protected] ~] pip install mysqlclient 

错误摘要如下:

OSError: mysql_config not found
   
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-knr3eh_4/mysqlclient/

- 阅读剩余部分 -