巴哈瀑布流 Side Project 开发笔记 -6:巴哈场外休憩区C页爬虫(楼层留言区显示)

0

巴哈场外休憩区C页爬虫 - 楼层留言区显示

这边我其实卡过好一阵子,就是不知道为什么逻辑撞车

总之,我是设计 ArticleBody 会包着 ArticleReply
Reply 的值本身就是一个物件装阵列,会储存该楼所有留言和留言的各个部件

超连结无法预览 - 被 JavaScript 加工过的 HTML

巴哈的留言内容本体,在初始的 HTML 内完全就是个纯文本
使用者的留言送出疑似超连结的东西时,会被巴哈侦测,自动转换成可以预览的状态
可能在稍后被 JS 转换成有 <a><img> 包起来的东西

Cheerio 只是一个解析器,它只解析 Axios 拿回来的 HTML
也就是说, 它不会让巴哈原站上面的 Javascript 被执行,进而影响到它爬回来的 HTML 的内容
所以我爬回来的留言一定是原始的纯文本,所有的超连结都无法预览或打开

虽然老用户仔细回想使用经历,确实该会是这样,但当下这个事实有惊到我
那,我要怎么显示留言区的媒体内容?

正则表示法

一样是小哈提点的办法,利用 正则表示法 筛出所有可能会是超连结的文本,加上对应的前后 HTML 标籤
正则表示法看起来像天书,但懂规则就其实很好理解,虽然看上去是真的凌乱......

任何你觉得会出现的符号,一律以 \ 开头
以筛出 GIF 举例:https:\/\/[-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[-A-Za-z0-9+&@#\/%=~_|]\.gif
https: 后面是不是要接 // ? 仔细看上面那串,就是在每个 / 之前都加上了 \ ,对吧?

而如果你 不确定会接什么 ,但是你对于它 可能会是什么 有个底的话
就使用中括号 [] 筛出那个 Range
例如 A-Za-z 就是指你觉得 大写与小写的字母 A~Z 都有可能出现,请它留意有满足条件的就算通过

正则表示法


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章