![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Notes
文章平均质量分 57
随手杂笔
laoyouzhazi
这个作者很懒,什么都没留下…
展开
-
[Handbook] Python + Tkinter: 桌面悬浮新闻速览 [ 2 ]
[代码][Handbook] Python + Tkinter: 桌面悬浮新闻速览 [ 2 ]原创 2022-10-14 08:00:00 · 557 阅读 · 1 评论 -
[Handbook] Python + Tkinter: 桌面悬浮新闻速览
【代码】[Handbook] Python + Tkinter: 桌面悬浮新闻速览。原创 2022-10-12 08:00:00 · 489 阅读 · 0 评论 -
[Handbook]一行cmd命令进入VENV环境并执行Python源文件
【代码】[Handbook]一行cmd命令进入VENV环境并执行Python源文件。原创 2022-10-06 08:00:00 · 1343 阅读 · 0 评论 -
[Handbook]一键某察者新闻
【代码】[Handbook]一键某察者新闻。原创 2022-09-25 08:00:00 · 145 阅读 · 0 评论 -
[Handbook]Python一键某狐首页新闻
【代码】[Handbook]Python一键某狐首页新闻。原创 2022-09-21 08:00:00 · 157 阅读 · 0 评论 -
[Handbook]一键某度热搜
【代码】[Handbook]一键某度热搜。原创 2022-09-19 08:00:00 · 227 阅读 · 0 评论 -
[Handbook] 一行shell命令进入VENV环境并执行Python源文件
【代码】[Handbook] 一行shell命令进入VENV环境并执行Python源文件。原创 2022-09-19 08:00:00 · 392 阅读 · 0 评论 -
一键下载小说(二):如何在Django中部署
在Django服务器中实施部署长时段的在线任务有两个关键的问题,如参数传递和超时问题。GET方法使用明文将参数拼接在URL地址后面传输,而POST则将表单参数加密后再发送,对于用户是不可见的。本文中的案例中,在本地搭建小说下载器,使用GET方法。至于超时问题,通常的惯例做法是在客户端使用Javascript脚本进行跳转或表单提交。需要的参数通过客户端Form表单提交和服务端渲染Django模板返回的组合方式进行交换。.........原创 2022-09-01 08:00:00 · 159 阅读 · 0 评论 -
Python: 一键下载小说(一)
前段时间写了个双引擎分章节下载存储小说的思路简述。对于一些没有特定的阅读器的小说迷来说,大量的章节文件是一件很麻烦的事儿。并且考虑到小说网站限速的问题,加上网络传输速度和硬盘读写速度的差距,这显得实际的意义不大。于是决定重写更简单的基础版的一键下载小说。将一本小说的多个章节合并存储在一个文本。只需一个简单的文本阅读器就可实现小说的轻松阅读。...原创 2022-08-29 08:00:00 · 1010 阅读 · 0 评论 -
Django在模板中使用CSRF Token
CSRF Token在Django站点的模板中主要应用在form表单,步骤相对简单。在HTML模板中添加“{% csrf_token %}”标记。一般常用对应的两种方法是GET和POST。GET方法把传入参数名称和值格式化包含在URL地址后缀。POST方法则是将参数加密包含在HTTP/HTTPS协议格式的消息之中。对于一些敏感操作,为了避免短时间重复执行,CSRF Token令牌是很有效且必要的措施。...原创 2022-08-26 08:00:00 · 1203 阅读 · 0 评论 -
Python + re + scrapy.Selector: 分析提取某在线征信站体系内容(一)
对于大多数求职者而言,查询企业征信是很有必要的。作为一个有“内涵”有技术的计算机科学技术人员,纯手动搜索实在不是流行的手法。半自动化和自动化才是办公流行的新趋势。科学技术是第一生产力,而时间就是金钱。智能分析可以节省大量的精力和资源,提高工作效率和产出质量。不管是作为一名有“深度”的劳斯基亦或是懵懂的菜鸟,下面就来试试如何使用Python工具包智能分析提取在线征信内容吧。原创 2022-08-24 08:00:00 · 489 阅读 · 2 评论 -
Ubuntu + ifconfig + dhclient:手动申请指定IP地址
一般情况下,是不需要指定IP地址的。自动分配的IP地址更符合日常的需求,除了基于一些计算机技术的特殊目的。主机的IP一般是遵循DHCP协议的。有效的IP地址存在于合法的DHCP租约中。在某种特定场景中,需要为某个主机设置特定的IP地址,除了在本地终端为主机设置局域网IP地址外,还要申请变更为该IP的新DHCP租约。原创 2022-08-20 08:00:00 · 1294 阅读 · 0 评论 -
Django:POST上传图片网址跳转
为了很好地提高用户体验,通过form表单的POST方法上传内容有时需要进行页面跳转。如果没有跳转至其他页面而保留在form所在的页面,且用户需要重载刷新当前页面时,就会很有可能出现重复提交form表单数据的问题。在此场景中,为了避免此类问题,在提交表单数据后,进行及时的页面跳转是很有效果的。...原创 2022-08-19 08:00:00 · 434 阅读 · 0 评论 -
HTML + CSS: 实现Tab导航栏(一)
前几天想写个Tab导航栏,在搜索引擎搜到C站一位bz的文章(注1)。代码虽短小,觉得有些意思,稍微修葺完成一个简单的Tab导航栏。基本原理是使用radio类型的input标签的属性选择器来修改不同状态tab标签的style样式和内容模块的z-index属性,从而实现tab标签的状态转换和内容显示。不得不说,CSS选择器2真的很强大。适当的使用就可以精简很多不必要的代码。当然配合使用Javascript提升用户体验也是不错的选择。为了简化说明,这里没有提及Javascript代码。......原创 2022-07-29 08:00:00 · 2368 阅读 · 0 评论 -
Kotlin SQLite URL转义字符(Escape)(一)
在使用SQLite保存URL地址时,很容易出现一些需要转义的字符,如单引号(')、百分号(%)等等。在保存数据表记录前,先处理特殊字符再保存较为稳妥。一般来说,处理“特殊”的转义字符,是将目标字符串统一转化为某种标准格式的形式。比如,可以转换为URLencode编码或Base64编码,需要使用源字符串时进行解码。这种类型的编码是置换加密方式的,这并不会破环源数据的完整性且性能良好的同时,又能够结构化数据,使转化后的数据更有条理、易于处理保存。...原创 2022-07-15 08:00:00 · 660 阅读 · 0 评论 -
Android Kotlin WebView使用DownloadManager下载文件
Android系统内置提供作为服务的下载管理器DownloadManager,可以很方便下载文件。WebView下载文件可通过该系统服务实现,主要包含两种方式:1)手动下载;2)通过DownloadListner触发下载事件。这里指的是第二种方式。这种触发下载事件的条件是webkit内核WebView浏览的网络地址URL指向的是一个非在线打开展示内容文件。.........原创 2022-07-07 08:00:00 · 992 阅读 · 0 评论 -
Kotlin WebView调用Javascript:护眼模式(基础版)
有时心血来潮,通过Android webkit内核——android.webkit.WebView开发个浏览器在网上冲浪也是一个“快乐”的事。能力丰富点可以定制一个小说阅读器。当然,Geek极客的精神是可贵的。适当的时候做适当的事才是正确的路。平时在网上看新闻看小说,时间稍长很容易造成眼睛疲劳。特别是手机这类常用电子产品,对眼睛的刺激较多。新闻类站点基本没有护眼模式,而一些小说移动网站的“护眼”也不稳定。正所谓“靠山山倒,靠水水淹”、“求神不如求己”。还是利用编程技巧来捣鼓一个简单的“护眼模式”手机安卓浏览原创 2022-07-04 08:00:00 · 401 阅读 · 0 评论 -
Android Activity Intent Filter: 选择打开方式/默认使用该应用打开
Android Activity Intent Filter: 选择打开方式/默认使用该应用打开gradle.build(:app)AndroidManifest.xmlapplicationactivityintent-filteractioncategorydataexample默认使用该应用打开选择打开方式合并: AndroidManifest.xmlgradle.build(:app)apply plugin: 'com.android.application'apply plugin: '原创 2022-05-29 08:00:00 · 717 阅读 · 1 评论 -
Python + Requests: Connection Keep-Alive
Python + Requests: Connection Keep-AliveHTTP/HTTPS Header Attribute ConnectionRequestsSession会话后记HTTP/HTTPS Header Attribute Connectionhttp/https header头部参数Connection分为短连接和长连接,对应属性为:close和keep-alive。http/https短连接是一次性读写完成后断开的连接,长连接则是在连接保持范围内可分多次传输数据。不管是长连原创 2022-05-24 08:00:00 · 3174 阅读 · 0 评论 -
Javascript删除网页悬浮广告(一)
Javascript删除广告(一)前言设计思路具体方案定位方式IdClassTag NameName解决措施删除隐藏折叠商业道德笔记前言在上网冲浪浏览网页时,有些广告相对不是很友好,比如悬浮广告。这里将这些用户体验不友好、差的小广告称为“垃圾广告”。不得不说,这些“垃圾广告”真的是令人无语到极点。先不说这类广告的“横截面积”占到版面的比例夸张幅度,也不提及它们的不可关闭、不可隐藏或不可折叠问题,更别说它们所展现的内容所涉及的原则问题,仅其中的“佼佼者”对硬件设备性能的不良影响就是不可忽略的首要问题。在大原创 2022-05-03 08:00:00 · 1322 阅读 · 0 评论 -
Openpyxl 简要手册(一)
Openpyxl 简要手册(一)简介安全问题兼容安装openpyxlopenpyxl用法创建 .xlsx创建工作簿Workbook创建工作表Sheet保存Workbook关闭 Workbook打开.xlsx使用工作表修改工作表单元格内容添加空白行删除工作表示例save_to_excel.py简介Openpyxl 是用来读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。Documentations of Openpyxl on readthedocs.io: https://op原创 2022-04-13 08:00:00 · 5249 阅读 · 0 评论 -
Python: 计算百分比
Python: 计算百分比题目说明方法一:浮点数有效值代码示例一示例二示例三示例四方法二:取整取余代码示例一示例二示例三笔记题目说明假设变量a,b,其中b不等于0。限定小数后有效位数为2,求a对于b的百分比。方法一:浮点数有效值代码def format_percentage(a, b): p = 100 * a / b if p == 0.0: q = '0%' else: q = '%.2f%%' % p return q示例一print(format_percentage原创 2022-04-10 08:00:00 · 13144 阅读 · 0 评论 -
Python: 如何去除字符串多余的空格、换行符(二)
如何去除多余的空格、换行符(二):文本文件前言内存变量磁盘文本文件二进制流前言前面写过一个关于简单去除多余空格、换行符的小抄:Python: 如何去除字符串多余的空格、换行符。有时,掌握一些不经意间的小技巧能节省很多时间,对文档规范化和自定义样式化还是很有帮助的。文档的整理囊括许多方面的问题,比如关于它的描述包含逻辑描述和物理描述。逻辑描述是从自然语言的角度出发,以人类语言逻辑的方式加工生成,易于理解。物理描述,通常是指文档的存储格式或存储描述,字符以某种特定的方式编码保存在存储器硬件上。实际上,由于原创 2022-04-01 08:00:00 · 4346 阅读 · 0 评论 -
Python:如何简单快速过滤HTML标签
代码:"""@author: MR.N@created: 2022/3/30 Wed.@version: 1.0"""import ioimport redef filter_html_tags(text): htmltags = ['div', 'ul', 'li', 'ol', 'p', 'span', 'form', 'br', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', '原创 2022-03-30 08:00:00 · 1147 阅读 · 0 评论 -
Django: AttributeError: module ‘mimetypes‘ has no attribute ‘inited‘
对修改的Django项目执行命令出现异常。$python manage.py runserver报错日志:Traceback (most recent call last): File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/user/apps/v原创 2022-03-09 08:00:00 · 749 阅读 · 0 评论 -
Python + Tkinter + Thread: 执行自定义回调函数callback
在使用线程的地方,有时需要初始化多个线程外部的目标变量,通过传入参数方式逐个导入变量会略显麻烦。这些变量一些是基本类型的,另一些是复合型的,例如非UI类和UI组件。在线程内部处理多个不同类型外部变量的初始化,会逐渐使代码变得“臃肿”不堪。为了使代码变得简洁的同时,提高模块可重复使用性,自定义线程回调函数callback是很有吸引力的。通常情况下,变量的初始化都是可预见的。在处理多个线程外部变量预设问题上,自定义回调函数比传入参数与预设值更加简洁优雅。同时由于Python的特性,变量的类型是“非固定”的—原创 2022-03-03 08:00:00 · 1583 阅读 · 0 评论 -
解决Django migrate: Your models in app(s): ‘Mymodelclassname‘ have changes that are not yet reflected
这是一个“小”问题,但稍不注意会很令人困扰。在Django项目根目录下执行命令$python manage.py makemigrations没有异常信息,但是在最终的migrate操作时出现错误提示(红色):$python manage.py migrateRunning migrations: No migrations to apply. Your models in app(s): 'Mymodelclassname' have changes that are not ..原创 2022-02-25 08:00:00 · 2453 阅读 · 0 评论 -
Python + PIL + Tkinter: 图片原比例缩放
示例代码使用Python 的PIL和Tkinter库。根据屏幕大小按照原图片长宽比例进行无拉伸的等比例缩放。预设屏幕方向为竖屏(1080 * 4096),仅是为了适应手机图片。图片缩放比例对照原图的长宽比例,分多次进行,包含快速调整、精确微调以及适应性调整。# ...from PIL import Image, ImageTk# ...# 预设竖屏图片尺寸I_WIDTH = 1080I_HEIGHT = 4096def image_resize(path, screen_width=0原创 2022-02-19 08:00:00 · 5612 阅读 · 0 评论 -
Android (Arctic Fox P2) Kotlin WebView.addJavascriptInterface
1. 自定义需要注入Webiew的JavascriptObject:// 继承Object基类class JavascriptObject: Object(){ public fun doBefore(arg: Any?){ } // 注解1 @JavascriptInterface public fun do(arg: String?){ }}2. 往Webiew注入Javascript Interface类:// 注解2@Su原创 2022-01-21 08:00:00 · 2465 阅读 · 0 评论 -
Python + Requests + Scrapy:一周天气预报
打开中国天气首页,选中某个城市,例如广州。进入城市天气预报详细页面,选择“7天”。分析一周天气预报的结构体系,查找一周天气预报的根节点。根节点是id="7d"的div标签。解析每日天气预报列表的节点详细。每日天气预报列表是一个包含多个li标签、class="t clearfix"的ul标签。每日天气预报包含的有效信息为:日期、天气、温度、风向等4个基本要素。"""@author: MR.N@created: 2021-08-22 12:30 AM Sun..原创 2021-09-29 08:00:00 · 222 阅读 · 0 评论 -
判断URL是否有效的简单方法
URL地址常见协议主要包含http/https和ftp三种。验证URL地址有效性首要步骤是检查网址头部是否包含协议。如果必须包含显式的协议声明,则提取协议并判断是否在常见协议列表中。URL地址协议格式一般为:[schema]://[dns];或[schema]://[dns]/[path],path in ([directory] , [path]/[directory]);schema in ('http', 'https', 'ftp')。URL网址中的域名DNS至少包含一个域名分割原创 2021-07-20 13:41:38 · 5464 阅读 · 0 评论 -
Python + Selenium: 使用webdriver判断浏览器是否关闭
在使用Selenium的过程中,偶然发现浏览器意外关闭导致意料之外的错误发生。比如重复启动浏览器。在无界面headless模式下,因为目前流行的浏览器是多进程的,这是很难发现的。在浑然不知的情况下,多次重复启动浏览器而没有正常关闭,很可能导致多个浏览器进程以“假死”的状态滞留内存。“僵尸”进程占用浪费系统资源,堵塞其他进程,降低系统的性能。因此,需要合理正确的判断且处理浏览器状态,并在必要时回收系统资源的方法。由于Selenium中webdriver是直接管理浏览器行为的实体,所以可以通过webdriv原创 2021-09-07 21:28:56 · 5307 阅读 · 0 评论 -
Python + Selenium 自动翻页的方法概要总结
一、使用分析提取的网址 可以分析目标网页的体系结构,解构目标数据结构分析提取下一页的网址。目标数据结构可能是预先设定以相同前缀+页码的连续网页地址集、包含目标数据的href属性的a标签,或者加载的Javascript变量值,亦可能是远程地址的XML/JSON数据。通过Selenium的webdriver.get(url)直接跳转至下一页。或者使用webdriver.execute_script('window.location="'+url+'";')以Javascr...原创 2021-08-28 23:13:11 · 2557 阅读 · 0 评论 -
Tkinter监听窗口大小变化事件并自适应调整组件
初始化tkinter窗口:import tkinter as tkclass MyWindow: def __init__(self): self.window = tk.Tk() # 设置窗口标题 self.window.title('ImageCape') self.window.wm_title('ImageCape') # 默认窗口包含标题栏 self.window.overrider原创 2021-08-24 23:20:05 · 13307 阅读 · 1 评论 -
Python + Selenium + Scrapy:爬取分析存储C站博客统计数据示例
为了简化案例,这里仅提及C站博客首页旧版和部分统计数据。C站旧版的博客主页都是类似 “https://blog.csdn.net/” + uid 这样子的。这种比较好办。找好用户id就可以重用网址前缀。定义简单的C站用户ID类csdnuser.py:"""@author: MR.N@create: 2021-07-22 Thur. 12:12"""class CSDNUser: def __init__(self): self.uid = None原创 2021-08-19 23:05:49 · 165 阅读 · 0 评论 -
Python3.8 + Tkinter: Button设置image属性不显示的问题
Bug如题目所描述。尝试过将按钮的image指向的变量del_icon设置为global全局变量,但是不成功,会提示如“AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'”的错误。估计是PhotoImage的生成不能放在tkinter.Frame外进行。代码1是导致bug的源头。代码1:#!/bin/env python3from PIL import Im...原创 2021-08-08 23:42:41 · 1657 阅读 · 2 评论 -
简洁的项目库导入
导入库有时是一件繁琐的事儿。尤其是,当引用库数量级比较客观的时候。如果将大量的导入import放在程序入口源文件代码,即时“胡乱“的命名堆叠在一块,查找起来眼花缭乱,不甚方便。何不将将命名和导入规范模块化? 假设项目名称为ExampleProject,程序入口为main.py,需要引用的类为~/guancha/guancha.GuanChaLoader。直接的导入代码应该为“from guancha.guancha import GuanChaLoader”,或者...原创 2021-07-27 12:58:08 · 130 阅读 · 0 评论 -
django.core.exceptions.ImproperlyConfigured 和 django.core.exceptons.AppRegistryNotReady
>>> from myapp.models import * “raise ImproperlyConfigured(django.core.exceptions.ImproperlyConfigured: Requested settings INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_...原创 2021-07-23 00:31:32 · 584 阅读 · 1 评论 -
迁移Django项目至PyCharm项目
新建PyCharm项目——MyProject。MyProject的目录预览如下。在MyProject的venv目录包含的虚拟环境中,使用django-admin创建新空白项目MyProjectD:(venv)$django-admin startproject MyProjectD。重命名MyProjectD根目录下的子目录MyProjectD为MyProject。将MyProjectD根目录下的manage.py文件中的所有“MyProjectD...原创 2021-07-22 22:33:20 · 386 阅读 · 5 评论 -
相对/绝对路径的缩写URL地址填充
在互联网上搜集信息,经常会遇到一些URL网址的缩写,比如“/a/b.html”或“a/b.html”。这两种缩写的URL地址是不能被直接识别的,所以需要根据当前的URL网址进行转换。手动转换对于自动化程度较高的过程来说,显得比较麻烦。不如稍微研究解决出数据处理的代码来得方便。 URL网址格式一般为:[protocol]://[host]/[path]/[filename]。不包含文件名filename的这里不做讨论。URL地址的协议分割符号为冒号+双斜杠 -- “://”,...原创 2021-07-21 14:19:12 · 320 阅读 · 0 评论