BLCL的博客小馆

归档 · 全部

首页

关于

归档

loading..
PythonPDF

一日一技:从PDF完美提取表格

在之前很长一段时间,从PDF文件中提取表格都是一个老大难的问题。无论你使用的是PyPDF2还是其他什么第三方库,提取出来的表格都会变成纯文本,难以二次利用。但现在好消息来了,专业处理PDF的第三方库PyMuPDF升级到了1.23.0,已经支持完美提取PDF中的表格了。还可以把表格转换为Pandas的DataFrame供你分析。PyMuPDF的使用非常简单,首先我们来安装:1pip install pymupdf pandas openpyxl其中安装pandas是为了能让它转成DataFrame,安装openpyxl是为了能把结果导出为Excel。我们来看一个测试的PDF文件,如下图所示:其中表格在第5页,那么我们编写如下代码,读取第五页的表格:1234567import fitzdoc = fitz.o..

更多
loading..
GitLabSynology

群晖6.2.4 安装GitLab

Foreword 折腾一下群晖,上一次折腾已经是2020年了。 硬件升级 硬盘扩容 最初没考虑那么多,使用的是RAID1,两个4T盘,实际可用比4T小一点,一直也没用满。 由于后续有大量视频素材存储,所以这点内容完全不够看了,需要扩容。组了4张8T盘,打算切换成RAID5。 DS918+只有4盘位,所以实际操作是先插入2个8T盘,进行扩容。 群晖本身早就考虑到了扩容和各种替换盘的情况,自带的帮助中都有各种情况的说明,第一步就是插入2个8T,扩容,然后将当前的盘从RAID0转换到RAID5。 这个大概花了一两个小时就完成了。 接着就是抽掉一个4T盘,插入一个新8T,进系统以后会提示修复,修复即可。这个时间非常长,大概要2天的样子,如果数据多估计就要更久了。 最后就是再抽掉一个4T..

更多
loading..
GitLabSynology

群晖6.2.4 安装GitLab和硬件升级

Foreword 折腾一下群晖,上一次折腾已经是2020年了。 硬件升级 硬盘扩容 最初没考虑那么多,使用的是RAID1,两个4T盘,实际可用比4T小一点,一直也没用满。 由于后续有大量视频素材存储,所以这点内容完全不够看了,需要扩容。组了4张8T盘,打算切换成RAID5。 DS918+只有4盘位,所以实际操作是先插入2个8T盘,进行扩容。 群晖本身早就考虑到了扩容和各种替换盘的情况,自带的帮助中都有各种情况的说明,第一步就是插入2个8T,扩容,然后将当前的盘从RAID0转换到RAID5。 这个大概花了一两个小时就完成了。 接着就是抽掉一个4T盘,插入一个新8T,进系统以后会提示修复,修复即可。这个时间非常长,大概要2天的样子,如果数据多估计就要更久了。 最后就是再抽掉一个4T..

更多
词法分析语法分析编译原理编译器ANTLR

使用ANTLR4格式化JSON

JSON由对象和数组组成,对象是一个Key和Value的关系映射,数组则是由多个value组成。对象使用大括号{}表示,数组则使用中括号[]表示。因此我们可以得到对象和数组的表达式object: '{' '}' | '{' kv (',' kv)* '}';array: '[' ']' | '[' v (',' v)* ']';其中kv表示一个KeyValue的关系映射,多个KeyValue中间使用逗号,分割,一个对象可以不包含元素,或者包含一个或多个元素。v表示一个元素,数组的多个元素中间同样使用,分割,数组可以没有元素,也可以包含一个或多个元素。kv由key和value组成,key只需要是一个字符串就可以,而对象的value和数组的value一样,支持以下多种元素对象数组文本数字truefalsenu..

更多
loading..
bmacamdhackintosh

黑苹果 AMD GPU 功耗一直很高

通过注入 DeviceProperties 实现Notice不需要 Whatevergreen而且当机型为 iMacPro1,1 或 MacPro7,1 时, DRM 也可以正常工作备份现有 OC 配置文件查找 PCIe 路径打开 Hackintool点击 PCIe 页找到显卡对应的 PCIe 路径, 复制(也可以直接在 OCC 里面手动选择对应的路径)编辑 plistNavi 架构的卡还需要添加 SSDT-NAVI.aml 到 EFI/OC/ACPI 和 plist 中 修改 model 的值, 可以给显卡改名称 禁用 Whatevergreen.kext删除 boot-arg agdpmod=pikeraDeviceProperties -> 显卡 PCIe 路径 -> 添加 -&gt..

更多
loading..
RouterOSMikrotikNetwork

RouterOS的一些基础配置指南

Foreword 记录一些折腾RouterOS时遇到过的奇奇怪怪的问题 RouterOS的工业设计水平很渣,但是流畅度max 基础配置 RouterOS的一些知识库,可以参考这里 https://mp.weixin.qq.com/mp/homepage?__biz=MzIwOTIzMzA4OQ==&hid=4&sn=26ae13d6e36d090c7377faddfb70cdd9&scene=18 桥接Fit AP模式 https://docs.qq.com/doc/DYmdPcWRVU2hhcGty 拨号路由 https://docs.qq.com/doc/DYmV3a296Z1BrY0lS 端口隔离 https://wiki...

更多
loading..
NetworkUBNT

UBNT的一些基础配置指南

Foreword 记录一些折腾UniFi时遇到过的奇奇怪怪的问题 UniFi和RouterOS比起来,感觉贼难用,特别是采用,发现设备响应非常慢,急死个人。 经常会出现站点文件里的设备采用失败,对不上了。 虽然UniFi的AC设计的非常高大上,但是真正需要配置的东西却都隐藏起来,他面向的更多的是小型环境,小白环境。而他的易用程度如果和国内的比,那简直惨不忍睹,不知道为啥国外的设计思路都非常繁琐,不够直接。想做到易用却又端着自己的设计风格和程序框架上的思路,自我矛盾,而想要专业却又远不及真正专业的大厂。这也导致了UniFi处于市场中不上不下的位置。 采用 UniFi的AP设备新版本采用必须把设备连接到有dhcp的网络中才能正常采用,否则大概率采用会失败。 最老的设备恢复出厂设置以后是自带DHC..

更多
loading..
RouterOSMikrotikWireGuard

RouterOS配置WireGuard

Foreword RouterOS 从7版本开始加入了WireGuard,方便用户做异地组网,当然如果有Zerotier,也能组网,作为RouterOS 力推的组网方式,试一试看效果如何。 SD-WAN 做异地组网还有一种方案就是使用SD-WAN,不过这个技术随便查查就知道了,基本是天价,运营商给的价格非常高,带宽又特别小,很不实用。 WireGuard https://www.wireguard.com/ WireGuard最早听说是用来当VPN,翻墙用的,各种工具,UI封装以后拿来翻墙。不过随着封锁力度逐步增大,WireGuard也变得可以精准识别了,同时由于WireGuard本身是UDP,很容易被QOS,所以也没尝试过。由于他本身的一些特性,非常适合用来做异地组网,所以如果是国内..

更多
loading..
RouterOSMikrotikNetworkWireGuardZeroTier

RouterOS配置WireGuard和ZeroTier

Foreword RouterOS 从7版本开始加入了WireGuard,方便用户做异地组网,当然如果有ZeroTier,也能组网,作为RouterOS 力推的组网方式,试一试看效果如何。 SD-WAN 做异地组网还有一种方案就是使用SD-WAN,不过这个技术随便查查就知道了,基本是天价,运营商给的价格非常高,带宽又特别小,很不实用。 WireGuard https://www.wireguard.com/ WireGuard最早听说是用来当VPN,翻墙用的,各种工具,UI封装以后拿来翻墙。不过随着封锁力度逐步增大,WireGuard也变得可以精准识别了,同时由于WireGuard本身是UDP,很容易被QOS,所以也没尝试过。由于他本身的一些特性,非常适合用来做异地组网,所以如果是国内..

更多
爬虫Scrapy

一日一技:在Scrapy中如何拼接URL Query参数?

我们知道,在使用Requests发起GET请求时,可以通过params参数来传递URL参数,让Requests在背后帮你把URL拼接完整。例如下面这段代码:12345678910111213# 实际需要请求的url参数为:# https://www.kingname.info/article?id=1&doc=2&xx=3import requestsparams = {'id': '1','doc': '2','xx': '3'}requests.get('https://www.kingname.info/article', params=params)那么在Scrapy中,发起GET请求时,应该怎么写才能实现这种效果呢?我知道很多同学是通过字符串的format操作来拼接URL的:12..

更多
1171819202177