python - 有没有办法从 TheHackerNews 上发布的帖子中使用 BeautifulSoup 触发 Python 函数?
问题描述
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
web_scrape = 'https://thehackernews.com/'
uClient = uReq(web_scrape)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, 'html.parser')
现在,我有这个代码。如果不写我前面在标题中提到的函数,我不想更进一步。我想编写一个在 TheHackerNews 上发布帖子时运行的函数。(使用网络抓取来获取我假设的帖子信息。)我不知道如何做到这一点,有人可以帮助我吗?
解决方案
feedparser
允许您检查 rss 提要的最后修改的标题以检查新消息。仅当自上次请求以来发布了新消息时,它才会返回消息。这允许低带宽解决方案而无需任何刮擦。
import feedparser
import time
d = feedparser.parse('https://feeds.feedburner.com/TheHackersNews')
last_modified = d.modified
while True:
d2 = feedparser.parse('https://feeds.feedburner.com/TheHackersNews', modified=last_modified)
if d2.status == 304:
print('no new messages')
elif d2.status == 200:
last_modified = d2.modified
print('new messages')
# trigger function here
time.sleep(300) #sleep for 5 mins
推荐阅读
- sql - 以时间戳的日期值为条件的二进制指标
- python - 如何在这个关键路径算法中记录路径(Python - Floyd Warshall)
- html - CSS:表单在父 div 之外溢出,没有解释
- c++ - 错误:在标记“(”之前缺少二元运算符 - 详尽的解释,最好有解决方案
- c# - ASP.NET Core 3.1 [Authorize] 属性即使对于已登录的用户也会重定向到登录
- python - 使用 Dockerfile 安装 llvm-lite 失败
- google-apps-script - 在不同的工作表和文档上运行 Google Script
- flutter - Flutter - Navigator.push 值列表
- css - 当且仅当下一行没有足够空间容纳整个单词时,使用 CSS 强制使用连字符进行分词
- c# - 如何修复 C# 中的停止“无法将 int 类型隐式转换为 bool”错误代码