昨天有人留言问这么一个问题:
在解决问题之前,我们先要知道石墨文档是做什么用,(网址https://shimo.im)它是一个在线的word文档,可以用来存储图片、文字,同时把存储好内容的网址发给别人,这样别人也可以看到你写的内容了。并且当你修改文档中的内容时会自动保存,别人也会实时看到你更改后的内容。
当然说这么多,对于我们脚本有什么作用呢?
①可以做控制开关,比如让脚本读取石墨文档的内容,如果内容中包含我们特定的文字,就让脚本执行,如果不包含就关闭脚本。我们就可以通过修改文档随时控制脚本能否使用。
②话术库,比如脚本要发送一句话,但是这句话要不定期变化,那么就可以把话术放到石墨文档中,然后让脚本读取石墨文档,想修改的时候,就直接修改石墨文档。
③给脚本添加广告语,这个和第二点一样,我们把广告语写到石墨文档中,让脚本读取然后在运行的时候显示一下。定期我们通过修改石墨文档,更换广告语。
总体来说石墨文档就相当于一个“在线的txt文档”的作用,并且是长期有效的。
那问题来了,如果是一个txt文本,不是直接读取就行了吗,那还需要什么对接教程?
其实石墨文档并不是一个TXT文本,而是一个html页面,举个例子看一下。
大家可以打开这个网址https://shimo.im/docs/SSChv3Irm5Iu5FwY
看起来很简洁,就只有一些文字啥的,但是如果我们用url.get命令获取页面源码的时候,会发现它是一个网页的html文件,而不是只有文字。
traceprint url.get("https://shimo.im/docs/SSChv3Irm5Iu5FwY/read")
因为很多人是不熟悉html静态页面的代码,所以到这步就开始头大了。
其实大可不必,html本质上就是一大堆文字、字母、数字、符号的组合,当做普通的字符串处理就行。
对于字符串的提取,我们常见的方式就是截取法和正则匹配。
截取法就不说了,看一下我基础课的第22课,主要就是mid命令及获取对应的命令参数方法。
下面说下正则匹配:
(一)先找到我们要提取的内容的位置。
在文本中通过ctrl+f查找命令,找到我们要提取文字的所在位置。
(二)单独复制到一个文本中,分析格式。
通过调整一下换行格式,可以看到每一行文字就是一个p标签的段落文字 ,<p>标签在html代码中代表段落的意思。
(三)正则匹配
单独拿出来一行代码:
<p line="EnXh">你好,欢迎关注3分钟学堂~</p>
写成正则匹配就是:
shanhai.RegexFind(html,"<p line="".-"">(.-)</p>")
那么这个<p line="".-"">(.-)</p>正则匹配表达式是怎么来的呢?
我们先把原始代码处理一下:
<p line="随机不确定的文字">要提取的文字</p>
随机不确定的文字,我们用符号.-表示,点代表任意内容,减号代表最小的匹配数量。
要提取的文字,我们用(.-)表示,除了点和减号以外,多了一个括号,括号代表其内部是我们要提取的内容。
另外需要格外注意的一点,因为按键本身把双引号作为转义字符,如果代码中有双引号,需要在双引号前面在加上一个双引号。
下面我们看一下代码:
代码中提取了标题、按段落提取正文,提取全部正文。
由于html代码除了p标签以外,还可以能会有span,li,em等别的标签混在里面,所以我们在写石墨文档的时候,不要从别的页面上直接复制,最好是手动输入,如果非要复制,那么先把内容放到txt文本中去掉格式,在从文本里面复制出来。