优雅地将HTML转为PDF
为什么要将转换众所周知,HTML是一种非常重量级的超文本标记语言,包罗万象,容纳一切。但是对于非计算机相关人员很少用到。多数人写报告或者论文之类的东西的选择更多的是word,或者WPS。然后可能会转成pdf,因为pdf可以在浏览器中打开。在浏览器中按Ctrl + P可以直接把当前的网页转换成html,但是这是有损的转换。在新的pdf中,整张网页都会变成一张图片,所有文字都不能再复制,所有的链接也会失效。有时候我们为了向某些网站提交文档,辛辛苦苦写出来一张漂亮的html,但是别人不接收,如果直接用浏览器转成html,又会丧失原本的一些功能。这时候就要考虑如何将html转成pdf。
方法这里提供一
爬虫小实践——Yandex图片搜索内容
双拼输入法前端时间一直在练习双拼输入法,所以刚上手打字比较慢,所以一直没怎么写博客。(对,一定是因为这个原因才不写。)现在感觉比较熟练了。至于什么是双拼输入法这里有一篇文章。至于如何修改输入法,这个可以去搜索一下,毕竟不同的设备修改流程可能不太一样。关于双拼的种类,按搜索结果来看“小鹤双拼”和“自然码”这两种用的比较多。我选的是自然码,不过感觉其实都大同小异。这里还有一个很不错的练习项目。不过这东西不是一天两天就能掌握的,需要长期的练习哦。但是熟练以后你就会感觉到双拼的优雅。除此之外还能防止别人入侵你的设备。比如你电脑开着,人去忙别的事情了,这时候如果有人想用你的社交账号发点什么言论,他可能不
爬虫一些小问题的解决方法和浅薄经验
最近发现,学Python而不学爬虫是真不行,所以恶补了一些爬虫。记录一下在短时间内遇到的一些问题和解决方法
爬虫请求的诚意爬虫技术最总的归宿就是爬虫和反爬之间的博弈。服务器不想处理那些没有诚意的请求。一般来讲,在请求头中携带以下字段会提高请求的诚意。user-agent,referer,origin,cookie。
获取后端数据的API有时候我们需要通过找到前后端通信的API,从而之间获取数据。根据我浅薄的经验,这些API大多会放在Network下的Fetch/XHR分类中。GPT似乎也同意这个观点:是的,你的说法是成立的。在使用浏览器的开发者工具时,特别是在“Network”(网络)选项卡中
Gorm与数据库
本篇是对上一篇博客的继续补充(当然也可以视作独立的一篇)。
友情提示,本篇博客中用到了数据库可视化工具Navicat。另外,本篇博客的所有代码都可以从这里获取。
建立大致项目结构Gorm是一个可以操作数据库的框架。为了更方便观察对数据库的操作,我们先建立一个基础从项目结构:只有一个路由组,路由组里只有一个首页的路由。还要配置一下go mod的相关项。
先使用go mod创建一个项目,比如项目名称就叫gormnote。
1go mod init gormnote
然后获取一下要用到的包。
123go get github.com/gin-gonic/gingo get gorm.io/driv
Gin的结构(补)
本篇内容主要是对上一篇的补充。
自定义模板函数在上一篇文章中,定义了这样一段函数。
1234func UnixToTime(timestamp int) string { t := time.Unix(int64(timestamp), 0) return t.Format("2006-01-02 15:04:05")}
这就是一段自定义模板函数,其作用是接收一个参数timestamp,将时间戳转换成标准的时间格式并返回。它的调用是在default/index中。{{UnixToTime .date}},意思是后台
Gin的结构
友情提示,本篇博客的代码都可以从这里获取。
Gin的基本使用首先用go mod建立一个项目,比如就叫ginnote吧。
1go mod init ginnote
然后获取一下gin包,即便是已经装了gin包,也要获取,因为要配置go.mod文件。
1go get github.com/gin-gonic/gin
除此以外,还需要另一项工具,可以提供热加载,也就是可以一边写一边加载网页,每次保存项目都会自动重新编译运行。
1go get github.com/pilu/fresh
执行完之后,文件夹里会多一个tmp文件夹,这就表示成功了。
然后新建一个main.go,用这样一段代码就可以生成一
通道的工作方式
Go语言中存在着一种名为通道(channel)的类型,是一种用来在goroutine之间传递数据的通信机制。
求取素数这里我们打算求1~N之间的素数,算法是判断每个数是不是素数(而不用筛法)。但是当N(比如10000)较大时,这样会很慢,那我们可以开启多个协程,同时进行计算。
判断素数经典算法从2模到p的平方根。
1234567891011func isPrime(p int) bool { if p == 1 { return false } for i := 2; i < int(math.Sqrt(float64(p))); i++ {
一些胡思乱想
之前在中学阶段,闲的时候就会写一些无聊而有趣的文字。那个时候视野狭隘,很多东西都不懂,写出来的东西自然无聊。但即便是现在拿出来看看,也会觉得那个时候的自己能有那些想法还是挺有趣的。
高一的时候,同学送了我一套《三体》当作生日礼物。那大概是我真正开始接触科幻文学,当时对里面的一些细节和剧情看得还不是很懂,但也看得很爽。不过这篇文章里我并不是想说《三体》的剧情有多么酷炫,而是我似乎在科幻的世界里看到了现实。
在第三部《死神永生》里,有一段剧情讲的是黑暗森林打击预警(后来被证实是假的),主角程心和她的搭档艾AA在准备乘坐飞船逃走。但是末日时刻,每个人都想活命,有些人甚至直接在人群中发动飞船,很多人因
Go语言的包管理
创建项目首先新建一个项目。在项目的文件夹(我这里创建了一个叫pro的文件夹)的根目录中打开终端,输入命令,其中gopro就是项目名称(项目名称不一定必须是文件夹名称)。
1go mod init gopro
然后就会出现一个go.mod文件,里面大概是这样的内容。
123module goprogo 1.21.4
不同目录下的包引用在pro文件夹中创建一个新文件夹,比如就叫hello。在hello中创建一个.go文件,比如就叫hello1.go。然后可以写一些函数,比如:
1234567package helloimport "fmt"func Hello() {
对话
现在的大语言模型像是魔法一样神奇,基本属于是只要方法合理,有问必答,有求必应。我大概是从去年一月份开始了解并使用大语言模型的,这个系列用于收录我与大语言模型的部分对话。曾经的我真是啥也不懂,啥也不会,全靠人工智能捞起来。
最开始那会儿用的是一个付费的国内GPT镜像,后来那玩意儿涨价了,感觉太坑就不再用了,中间停了一段时间也没有用别动。然后大概七月份的时候,百度的文心一言开始测试,我一直用到了现在。
我看了一下历史记录,没有找到日期属性,我会挑出来一些可能有用的按照大概的时间从前到后列出一些问答。
pip相关的指令问:python中的pip在命令行窗口中有哪些指令?
答:pip 是 Python
1 2 3 下一页 »