Home
cover of episode Late Night Linux – Episode 309

Late Night Linux – Episode 309

2024/11/25
logo of podcast Late Night Linux

Late Night Linux

Chapters

The chapter discusses the discovery of Pup, a tool for processing HTML, and compares it to Beautiful Soup.
  • Pup is a tool similar to jq but for HTML.
  • It allows users to scrape web pages and extract specific information using CSS selectors.
  • Pup is faster and easier to use compared to Beautiful Soup.

Shownotes Transcript

你好,欢迎收听深夜Linux播客的第309集,录制于2024年11月18日。我是戴夫,和我一起的是格雷姆。

格雷姆晚上好。

来自约克郡的问候,大家好。让我们直接进入我们的发现吧。

Pup是一个非常古老的工具,我真的很惊讶。直到最近我才听说过它。它的主页上有十年前的更新,是的,我刚发现它。

我不知道,几周前吧。它最近一次更新大约是两年前。所以它维护得不是很好。但也许它运行得很好。

Pup的用途有点像jq,也许大家不太了解jq,但jq是一个用于处理JSON文件的工具。你将JSON文件输入jq,然后使用它的选择器语言从该文件中提取你想要的信息。Pup对HTML做了同样的事情。

所以你可以将一个网站的HTML输入Pup,然后使用CSS选择页面上的各种元素。使用它的选择器语言,你可以只输出你关心的内容。如果你想抓取一个网页并挑选出特定的单词、段落、标题或任何你正在寻找的东西,这将非常有用。

这是一个非常有用的工具,可以快速轻松地从网页中提取你想要的信息。非常有用。坦白说,我刚发现它……

……让我感到很尴尬。例如,你可以用它来抓取网站并只获取文章的内容,例如,将其馈送到你的大型语言模型中。

当然。

我想知道有多少人实际上为此使用过它?

我了解的公司越多,我就越发现存在大量的脚本为每个人完成所有繁琐的工作。

那么你用它做什么呢?

我试图抓取章鱼能源网站的一些页面,以提取我想要的信息。他们现在有一个API,但并非所有信息都在API中。所以我认为我只是尝试从网页上抓取。

这是你的能源供应商章鱼能源。

是的。它运行得足够好。我放弃了这个项目。但我认为下次我需要抓取网页时,我肯定会使用它。

它比使用Beautiful Soup更快一些……

……等等。是的,这正是我来到这里的原因。Beautiful Soup是我通常用来做这些事情的方法。

但每次我使用它,我都更讨厌它一点。我仍然不得不一遍又一遍地阅读它的手册,才能让它做我想做的事情。我发现Pup对我来说更容易使用,不是查询,而是交互……

……它看起来很像JSON。是的,这是一种很好的方法来分割你想要的内容……

它看起来像是用Go写的。

它很容易安装。是的,绝对的。用Go编写,然后它获取你的页面,你就完成了。没有废话。

这是一个非常好的项目。

让我们看看是否有Rust版本。

有,有一个……

……已经用Rust编写了Pup应用程序,但它是一个任务自动化系统。我对此不感兴趣。

我相信Pup一定存在于某个地方。8bitworkshop。这是另一个……

……久负盛名的项目,我简直不敢相信我以前没听说过它。这是一个基于Web的IDE,一个用于旧式平台(8位平台)的开发环境。它包括所有家用电脑,如Commodore 64、Atari 2600以及ZX Spectrum机器。

它是一个统一的用户界面,左侧有一列函数,中间是代码,右侧是一个集成的模拟器,整个项目都是开源的。虽然它通过Web UI运行,但你也可以在本地运行它。显然,它利用了许多不同的项目来将其整合到一个地方。

但这令人难以置信。如果你喜欢这类东西,选择Atari 2600示例,它包含了非常好的注释的模板汇编代码,你可以立即进入并更改你自己的游戏名称。或者,如果你想做其他事情,你会看到在右侧的模拟器上运行的构建二进制文件的输出,你可以进行单步调试。

你可以做IDE中左侧可以做的所有事情,并且可以导出二进制文件以便在真实的硬件或其他模拟器上运行。但让我打开它,因为它现在支持很多东西。早期游戏包括Atari 2600和ZX Spectrum,还有Master System、ColecoVision和PC Engine,以及许多其他儿童游戏平台和电脑,如Commodore 64和Apple II。

所有这些环境都是为了在这些设备上开发软件而构建的。这很难描述,因为他们做得非常好。你无法相信……你无法理解幕后必须付出的努力才能整合所有这些,但这让你想要尝试为这些旧的……

……旧系统编写一些软件。我可以看到自己会在这个上面浪费很多时间。它包含的内容种类繁多。它非常有趣,甚至还有一个Redcode设置,所以你也可以编写古老的Core War程序。太棒了。

不仅如此,还有很多日志。这曾经是我大学课程的一部分,我们当时使用的是6502芯片,但它们都在这里,你可以从头开始构建你自己的8位游戏平台,而这个IDE简直令人难以置信。

它的质量……它甚至在左侧代码的右侧显示时钟。这太棒了。我们25年前就有这个……

是的,例如Atari 2600实际上在左侧显示原始编译的二进制文件。然后它有……我不知道该怎么称呼它……中间列是带有注释的预编译汇编语言,所以你可以确切地看到每个指令的作用,然后是右侧的模拟器。

但你还会得到一个窗口,我不知道该怎么称呼它,堆栈、CPU上的寄存器。你还可以实时查看内存、视频,以及你可以使用80年代的动作回放器所做的一切。这太棒了。

它是开源的,并且以一种有趣的方式获得资金。主要作者撰写了关于为许多这些平台开发软件的书籍。你可以通过一个集成的链接购买这些书籍,这是一种非常酷的方式。

如果你有兴趣在圣诞节编写Commodore 64的汇编语言,我真的很想这样做。这很棒。我还必须说,在选择示例方面投入了大量精力,因为许多模板都记录得很好……

……并且注释得很好。所以即使你只是有一点兴趣,花15分钟,你也可以更改值。然后在右侧的模拟器中看到它运行,确实会让你想起在高中时代使用动作回放器按下开关并更改游戏内容的旧回忆。

能够在浏览器中做到这一切真是太棒了。

《半条命2》20周年纪念。

是的,我必须承认,我玩过的唯一一个《半条命2》是在《半条命:Alyx》中,你可以在其中获得所有Steam和Valve所谓的文物、纹理、模型等等。是的,这是我唯一玩过的《半条命2》。

让我感到很尴尬的是,我从未玩过很多,但有一部非常酷的纪录片是Valve自己制作的,浏览一下它非常酷。看完之后,是的,我偶然看到了一些盖布·纽厄尔的现代镜头。但他看起来与我脑海中他长什么样子的印象大相径庭。所以这很有趣。很高兴看到他穿着一件白色衬衫在红色polo衫外面,我觉得这很有趣,就像,“你需要快点变得正式一点”,但这是……你是谁?

还有一些关于灯光的。

这是几年前的事情了,但几天前在Lobsters或Hacker News上出现,有人发现《半条命》和一些较旧的游戏(如Quake)中闪烁灯光的语言实际上是一种字母表。然后,你将一个字符串传递给存在于这两个游戏中的相同函数。

它告诉你灯的亮度,例如完全开启、完全关闭或处于渐变阶段。然后它们如何脉冲,将是A、B、C、D或其他内容,然后回到A。这就是它上升然后下降的方式。看到像闪烁灯光这样简单的东西中存在一种语言,这很有趣。

太棒了。我看到社交媒体帖子说Valve在《半条命:Alyx》中重新使用了闪烁灯光的代码,这是在《半条命》发布22年后。

那是那个令人恐惧的VR游戏吗?

是的,是的。这是一个很棒的游戏。我的意思是,《半条命》本身就像玩……

它现在看起来可能并不那么原创,但它发明了许多其他游戏此后所依赖的东西。真是一个很棒的游戏。该公司已经存在了20年。

好的?本集由Tailscale赞助。访问tailscale.com/lnl。

Tailscale是连接设备和服务的最快捷方式,无论它们在哪里。如今每个人都有一个VPN,我们也有一个赞助商。但Tailscale与那些不同。这与隐藏你在咖啡店老板面前的浏览习惯无关,也与在另一个国家观看Netflix无关。Tailscale是一个真正的VPN。

用于安全地连接你的设备,非常适合公司,也适合自托管者。许多深夜Linux听众使用Tailscale,因为它提供了WireGuard的强大功能,并具有简单快速的设置。我几分钟内就完成了设置,无需打开任何端口。Tailscale允许你连接任何东西,无论在哪里,为你的组织提供对任何资源的连接,从仪表板到NFS或Windows文件服务器,从自托管DNS……

……服务到软件即服务。如果你想将其从公共互联网中隔离,Tailscale将提供安全的访问。Tailscale的个人计划将始终免费,因此请支持该节目并免费试用Tailscale。

今天,你将获得最多100台设备和3个用户免费使用Tailscale,网址是tailscale.com/lnl,无需信用卡。那就是tailscale.com/lnl。我最近看到的一个东西是European Alternatives,网址是stop.eu。

它说“欧洲数字产品的替代方案”。我们帮助你找到欧洲数字服务和产品的替代方案,例如云服务和软件即服务产品。他们拥有各种各样的东西,从VPS提供商到域名注册商、uptime监控服务、文件托管服务,甚至浏览器。

他们还提到了Firefox,因为它是一个开源浏览器。对于每个类别,他们都会提供各种选择,告诉你它们位于欧盟的哪个国家(例如德国、波兰等),并告诉你它们是否没有英文网站,这很方便。我为此感到高兴。

我想知道为什么这最近这么流行。但事实就是这样。如果你碰巧想要一些位于欧洲而不是其他任何地方的东西,那么这就是你的选择。

我一直在尝试搜索开源的SAR观察者,但我找不到任何东西。

嗯,你意识到我们还没有提到它吗?

我认为我们可以避免这种情况。你在说什么?

我的意思是,我压抑的绝望、恐惧感等等。

我认为我已经突破了另一边。事实上,我仍然像……该死的,它只是因为你的名字……

……在约克郡交易所,它不是核目标。你的财务……

……非常接近……

……约克郡交易所。

WisBlock智能魔方伴侣。

我对魔方很感兴趣,但我并不擅长,但我会做,保罗·赫茨教我的,我必须在接下来的四天内做大魔方。我仍然会做。我有一个小魔方,它是一个很好的消遣。

所以过去几年发生的一件事是出现了很多智能魔方。GAN是最好的魔方制造商之一,它制造智能魔方。但它们都有最糟糕的应用程序。

你必须创建一个帐户,你通常使用应用程序来随机化魔方,但主要是计时和训练你的表现,所以你可以计时自己解魔方,还可以学习新的动作并一遍又一遍地重复它们。这很有用。但应用程序很糟糕。

嘿,你告诉我这些东西是电动化的,我让它走了。并且随机化它,不。

虽然有一些不错的3D打印项目可以将其电动化,但它们只是知道魔方处于什么状态,对吧?所以通过蓝牙,它连接到应用程序,并且应用程序知道魔方的状态。所以当你解魔方时,它会……它们通常会更新以显示……

……魔方的状态在屏幕上。

它会告诉你该怎么做,放弃像真正随机设置一样的设置,以便你可以测试。因为当你玩魔方很多的时候,你基本上会陷入同样的旧例行公事中。所以拥有其他东西是很棒的。告诉你什么是随机的,通常只有六七步就足以随机化魔方。

但它会告诉你该怎么做。我设法检查的唯一方法是剥掉贴纸。即使我,一个精力耗尽的人,我也只是不在乎。

那么,你可以用这个来进行像铲子洞穴那样的操作吗?就像你说的,那些人做到了。

是的,就是这样。所以人们非常重视。我几乎在一分钟内就完成了。所以我真的不擅长。

所有这些。

你在人工智能方面做得很好。

通过喜欢。

竞争标准,但对于普通人来说是好的。

我没有学习成为熟练玩家所需的任何复杂排列。所以这些魔方与之通信的协议是封闭的,最近的标准是,有一些智能魔方制造商,包括Movie in the Same,它们都使用自己可怕的专有应用程序进行通信。它们太糟糕了。

我无法形容它们有多糟糕,因为它们都是四层。所以我一直在寻找一个开源规范或对这些东西进行反向工程。有一些奇怪的APP项目在线上反向工程了这些协议。

这个项目反向工程了协议,但把它放在一个嵌入式设备中,你实际上在RAK 19017中使用它,这是一个小型物联网板。这是一个开源项目,可以与你的智能魔方通信。

它上面有一个屏幕,它可以做APP所能做的一切。但它比你想象的要好得多,你可以把它放在一边,然后玩你的魔方。你不需要使用锁。

进入任何东西。确保这张照片中有一个真正的3D打印氛围,是的。

所以我没有制作它。我实际上更感兴趣的是查看代码并尝试从中创建一个应用程序,因为我只是想拥有一个可以设置我的魔方求解时间并设置正确的东西,并且还可以保存我的分数,因为那是我唯一感兴趣的。

这就像你和威尔的妻子们聚在一起,试图为你们设计一份圣诞礼物,你们中的一个可以解开魔方,而另一个可以解码低功耗蓝牙协议。太荒谬了。

而且有很多,我不说,我说你可以假装在会议上集中注意力,同时偷偷地试图阻止。

更重要的是,对于魔方来说,有一个等效的版本,记住是的。

我记得那可能是。但它确实支持很多,它支持像Pami Sports、MegaMics、巨大的魔方、2x2魔方等等。我有很多。所以我要分享我们的照片,这样你就能看到我的收藏有多大了。

我想我仍然可以解开魔方。并且在。

20秒内,我仍然不明白这是如何运作的。方块是如何移动的?我就是不明白。

我只是太懒了。我认为这就是我为什么知道我不擅长某些方面的原因。

我听说魔方,它不仅仅是逻辑问题。你只需要学习如何去做。这是一种技术,就像填字游戏一样,你看谜题填字游戏,它看起来像垃圾,但有人解释了如何去做,然后你可以学习这项技能。然后它就相对简单了。

基本上是算法。是的,你看到魔方的状态,你知道你可以做一系列动作来让自己从这种状态变成更有序的状态。你掌握的算法越多,你就能走捷径。

所以一开始,我认为你需要学习四到五个,你可以通过学习四到五个不同的动作序列来学习魔方。然后如果你变得越来越高级,你可以学习更多。然后这种条件,根据你,可以分支并做一些事情,如果某个地方有某种模式,或者以另一种方式进行。所以它是一组动作序列。但有趣的部分是变得更快,因为你可以将你对算法的知识与更高级的算法结合起来。

和更多条件。好吧,我把这个放在上面,它不仅展示了魔方等等,而且在背景中你有一个非常漂亮的操纵杆,看起来和你邻居家的操纵杆一模一样,谁知道呢?我永远买不起任何东西。

那让我的竞争精神燃起了。

是的,这也是给市长。是的。

你有一些魔方没有立方体块。是的。

它们非常有趣。它们真的会让你绞尽脑汁,因为事实上,解决方案,算法是相同的。但是每个位置的块,而不是不同的颜色和不同的形状。所以你只需要尝试让你的大脑去思考那个形状是蓝色的,或者你碰巧做的是什么,我不知道,随着年龄的增长,你尝试,我不知道。

好的?本集由Entroware赞助,访问entroware.com,Entroware销售预装Ubuntu和Ubuntu MATE的电脑。

有一系列的台式机、笔记本电脑和服务器,大部分部件都是可配置的。所以你可以选择适合你的CPU、RAM和存储。如果你找不到你想要的东西,请联系他们,他们会和你一起做一个发言人。

Luke,这非常适合你的需求。运送到英国、爱尔兰、法国、德国、意大利和西班牙。

如果你购买了他们的机器,结账时有一个下拉菜单,你可以选择Late Night Linux,这样他们就知道是我们推荐你的。所以访问entroware.com,满足你所有Linux计算需求。接下来是一些管理工作。首先,我要感谢所有通过PayPal和Patreon支持我们的人。

如果你想加入这些人,你可以访问latenightlinux.com/support,记住,在Patreon上,你可以获得不同金额的无广告或资产包,无论是本节目还是Late Night Linux系列的所有节目,你都可以获得一些剧集。另外,如果你想联系我们,可以发送电子邮件到latenightlinux.com。当我谈到Framework笔记本电脑时,我提到了一些电池测试以及Xfce的表现有多糟糕,以及我一直在威胁要进行更广泛的测试。好吧,我已经做了一些测试。我还没有完成我的测试,但我有一些初步的结果,不是结论,而是有趣的事情,让我们这么说吧。

现在让我先说,测试这玩意儿真的很难,真的很难。我不确定最好的方法是什么。

所以我一直在做我的YouTube测试。所以我尝试让笔记本电脑完全充满电。我设置了一个cron作业来记录电池电量。

每分钟一次。我确保亮度是最高的。我启动了一个YouTube 24小时直播流。然后我拔掉笔记本电脑的电源,让它一直运行到没电。

然后一旦我再次把它充好电并打开它,我查看那个文本文件,计算出从解锁到它关闭的分钟数,然后我写下分钟数。我不认为这是你能做的最好的测试,因为实际上你更想测试更多生产力方面的东西。比如你多久会看全屏视频,全亮度。

经常看全屏视频直到。

睡着?是的。好吧,我在做饭的时候经常看全屏视频,全亮度。所以也许这不是一个糟糕的测试,但我感觉一定有某种生产力测试或。

你可以为Windows获得属性,这些属性会执行此操作,例如打开喷雾剂和更多文档和编辑器学习内容以脚本化的方式。一定有办法在Linux上做到这一点,所以如果有人知道,请告诉我们。发送电子邮件到latenightlinux.com。但就目前而言,我所做的只是这个YouTube测试。

在邦峰会上,有一个名为WhatWise的开源项目。我还没有机会好好研究它,但他们正在做的是开发软件来计算进程的能耗,也许这可以帮助。

在这种情况下。是的。

WhatWise?它叫这个名字?是的,是的。

是的。我听说过。可能需要编写一些脚本。

一些东西,是的,是的。

但无论如何,我决定测试Xfce、MATE、Plasma和GNOME,现在要说明的是,GNOME使用Wayland通常表现。

在你的Framework上最好?是的。虽然我喜欢你的。

在Framework上的数字,Plasma的表现略好于GNOME。

使用Wayland,再说一次,对不起,我没有听到,是的。

而且我只测试了Xfce使用X11,因为没有Wayland会话,它的表现略好。但是,我认为它作弊了。我认为尽管我告诉它不要在电池电量低时调暗屏幕,但我认为它确实这样做了,这就是它多运行了几分钟的原因。

好吧,它显然比其他的更智能,你是在开玩笑。然后修复了它。

我试图复制它。我不知道。这是它很难的一部分,因为你试图告诉Linux不要关闭你的屏幕,尤其是在电池电量低时,不要给我警告并调暗屏幕,不要进入超级性能模式。

但这其实是它的一部分。也许我不知道,这使得它很难,但有一件事对我来说非常清楚,那就是你的硬件越旧,测试结果就越不重要。因为我用各种机器尝试过这个,对吧?

我用VivoBook尝试过,它是一款第三代i3。我用ThinkPad X270尝试过,它是一款第七代i5。

就在Windows 11截止日期之前,我用T480尝试过,它是一款第八代i5,几乎可以运行Windows 11。然后我用Framework尝试过,它是一款Ryzen 7 4800U,以及旧的VivoBook。结果并没有以统计学上显著的方式有所不同。我认为它只是稍微差一点。我认为Plasma只赢了一次,否则它们几乎都一样。

我想知道这是否是因为处理器具有视频流的硬件解码,如果那是你运行的相同测试。比如我想知道如果我们找到一种方法来自动化,比如,办公室生产力是否会改变,或者你知道我会进行一个不太密集的测试?也许是的,是的,但是我的意思是,尝试弄清楚这些事情真是太难了。我当然不会自愿去做,是的。

而且全屏视频解码可能与最终的窗口管理几乎没有关系。

是的,我敢打赌,有很多针对零拷贝的优化,它直接从网卡到视频RAM,几乎没有CPU参与。

但我认为你可以从中得出的一点是,如果你在同一个系统上,你尝试了多个桌面环境,那么它。这可能对那台机器来说是一个有效的本地比较。

好吧,有一件事对我来说很清楚,那就是Ubuntu的版本越新,电池续航时间就越长。对于T480,我尝试了22.04,它已经安装好了,然后我尝试了24.10,最新的一个,除了我获得了大约25-30分钟的额外续航时间,其他方面略微减少。

但电池续航时间有了显著的提高,这告诉我,这表明新的Ubuntu版本可以更有效地利用硬件。有趣的是,版本越新,桌面环境之间的差异就越大。对于Framework,它是一款非常现代的Ryzen,差异非常明显,Xfce表现非常糟糕,X11和Wayland之间的差异也很明显。

你知道为什么Mint和Ubuntu如此不同吗?我想知道另一个是什么,为什么它们如此不同?

是的,这就是我接下来要说的。所以我最初的结论是Xfce很烂。但我开始认为我可能错了,它不是很好,我不会说它很烂。但与其他相比,因为我想,让我们尝试一下Xfce。

它使用的是相同的Xfce吗?

我认为是的。是的。

不是。我猜它仍然使用X11。

哦,是的,是的,是的,是的。绝对是。是的。它的表现更好,底线是它的表现。它的表现与MATE Plasma大致相同。

而Ubuntu在我的几乎所有其他测试中都落后,这强化了我之前对Xfce所说的内容。它只是这些天没有得到那么多关注。但有趣的是,Plasma,我用Wayland在24.04和24.10上进行了一些测试,它的表现并不比X11 Plasma好,这似乎表明他们并没有对Wayland会话进行太多优化,而GNOME显然对Wayland会话进行了更多优化。

这很有趣。如果他们做很多,看看结果会很有趣。

如果它已经略胜一筹。

不会是五千小时的续航时间。

好吧,它并不总是耗电。它是一种间歇性的消耗。

我们看看消耗了多少电量。

是的,是的。好吧,我对Marti印象深刻。Marti的表现似乎比我测试的Bund好得多。

至少从这些结果来看。而且我有点失望的是,在某些情况下,Elementary OS的表现并没有更好。但考虑到EXO 11有多旧,以及我们都知道它实际上做了什么。

我想大约二十年来,它一直在竭尽全力地运行。

确保它能工作,我想。所以我的意思是,它从未被设计成这样,而且应该,好吧。

拿T4来说,它的电池真的很差。它取消了。

Elementary OS 11在44分钟内完成测试,而Island在53分钟内完成。我的意思是,这是一个显著的改进。我不擅长即兴计算。大约是50%,20%左右,是的。

我可以看到在其他结果中,它略微好一些,但它并不很明显。我认为这是一个很好的测试。我认为这些结果非常有趣,我认为我们应该将它们与其他窗口管理器一起汇总。

我也非常想知道Windows 10或11在这些测试中的表现。

完全不那样。我不是因为。

你让Linux难堪。

不,我只是认为安装Linux容易得多。而且根本不用费力。Windows更新和所有这些重启,它重启了五次等等。

我不同意,但我认为看看Linux在这些参数下落后多少会很有说服力。

Windows。我真应该这样做。是的。我的意思是,我应该更科学地处理这个问题。

但这只用了五台笔记本电脑进行测试,花了我大约一周的时间,因为你必须等待它充满电。你必须设置好它。让它运行,再充一次电。

而且,你知道,我一直,是的,我一直在不停地使用笔记本电脑。我就像一家电器商店,就像在五台笔记本电脑上同时播放YouTube视频一样。有时真的很混乱。

我不知道你是否记得。但当我以前为杂志工作时,我们有时会做一个功能,它会破坏,是的。我们对顶级十五款进行所有这些性能指标测试,基本上,我们四五个人进行了三周的测试,而且,是的,这真的很困难,然后很难从中得出正确的结论,因为它们也不同,而且从来没有明确的赢家。

好吧,我一直在想的是,让大家自愿帮忙会很棒。如果你有一台可以为此专门使用的机器和时间,请与我们联系。正如我所说,如果愿意帮忙,请访问nightingale.com。

我会设计,或者也许我们可以一起设计一种更科学的方法来做这件事。因为我真的很想知道,最好的是什么?有没有明确的赢家?它是否取决于硬件。我的初步结论是,是的,如果你有旧硬件,它没有区别。对于新硬件来说,区别越大,暴力破解通常会给你最好的结果,除非你想相信Plasma更好。

这将是正确的。

所以如果你有兴趣帮忙,请与我们联系,对吧?好吧,我们要离开了。下周我们会回来,那时我可能会有新闻等等。但我们必须说,在此之前,我一直在那里。

我吃饱了,我…

谷物,我喝了水。