go - 为我的大学网站制作自定义 RSS 提要
问题描述
我的大学有一个发布公告的网站。我不能错过这些公告,同时,每天查看网站有点麻烦。该网站没有 RSS 提要。
公告发布在网页上,公告的 URL 格式如下:
http://example.com/news/detail/1/n
哪里n
是公告ID,它是数字。
当有公告时,上述网页(例如http://example.com/news/detail/1/180)包含以下格式的公告:
<div class="middleconten">
<h3>
Title </h3>
11 October, 2019
<p>
<a href='/some/link' target='_blank'>Click here for more details</a>
</p>
</div>
并且当没有公告时(即,当用户访问一个带有n
值的网页时,该值与实际公告 ID 不对应,http://example.com/news/detail/1/1234567890,例如例如),网页如下:
<div class="middleconten">
<h3>
</h3>
1 January, 1970
<p>
</p>
</div>
如何为捕获<h3>
值、href
属性和日期的网站制作 RSS 提要?
解决方案
您需要定期在网站上搜索新的新闻项目。您可以使用goquery来提取数据。
这个想法很简单。您需要从 1 开始生成新闻部分的 url(填写 的值n
)并访问每个 url。如果你找到新闻(结构存在),存储数据。将值加 1 以n
获取下一个 ID。如果 url 不包含新闻,则停止并存储最后成功新闻的编号/ID 的值。下次可以从这个ID开始,而不是从头开始。
比如我从 1 开始,我在 ID 32 找到最后一条成功的消息。我把它保存在某个地方。下次我可以从 33 而不是 1 开始。
当您拥有从网站提取的数据的数据库时,您可以从中发布您自己的 RSS 提要。您可以使用像chi和 gorilla feed这样的路由器来创建 rss feed。
推荐阅读
- python - 如何将 C 变量作为变量公开给 Python?
- excel - 将范围从一个工作簿复制到另一个工作簿并将数据粘贴到最后使用的行下方
- azure - 使用动态配置存储指定文件共享的名称
- python - 如果组内的一行满足熊猫中的特定条件,如何选择组的所有行
- javascript - 无法在 react.js 中将 e.target.files[x] 附加到 FormData
- google-apps-script - 在比较列中的代码后查找两个工作表之间的差异行
- angular - 在 ng2 chart.js 中删除 DoughtChart 上的百分比
- sql - 无法仅为一项作业打开步骤输出文件
- python - 由于 2.7 deprecation 错误,已安装 Python 3 并且无法安装 MySQLdb
- c++ - 如何分离while循环?