python - Python:抓取分类网站。如何仅返回上次运行的最新条目?
问题描述
我想留意一个分类列表页面,只要有新东西出现,它就会通知我。我在 bs4 中构建了一个相当幼稚的刮板,它抓取一个页面并刮掉商品、价格以及该商品的上市时间。
类似的东西
page = requests.get('https://sg.carousell.com/search/products/?collection_id=13&query=herman%20miller&sort_by=time_created%2Cdescending')
soup = BeautifulSoup(page.text, 'html.parser')
for item in soup.find_all(class_='_-W'):
item.find(class_='_-m').text
item.find(class_='_-t').text
到那时,我会将它连接到某个机器人,每次作业运行时我都会得到一个 ping。
但是,我只想在出现新事物时收到警报。一种选择是以某种方式存储找到的第一个项目(例如作为 txt),然后比较每个项目的唯一 ID。如果一个项目的 ID 高于前一次运行,那么它必须是新的。
但是我觉得这有点笨拙,想知道还有哪些其他选项可用。在运行之间跟踪列表中的新项目听起来像是一个肯定已经解决了很多次的问题,但我在搜索中没有发现任何解决方案。
解决方案
由于您定期运行刮板,因此您可以查看“时间”并了解它是否是新的。
<time class="_-t"><span>5 days ago</span></time>
推荐阅读
- python - 使用 python + BeautifulSoup 进行网页抓取时处理 br 标签
- shopify - 使用 Shopify 销售网络工具或服务
- php - 处理开放且格式正确的 PHP 循环
- pointers - 为什么 C++/WinRT IDL 文件不允许我使用指针作为参数定义方法?
- node.js - 在 Node.js 中使用 AWS SES 在电子邮件正文中发送超链接
- ffmpeg - FFMPEG - 添加一个 nullsrc 会导致我的脚本报告“1000 个重复帧”
- html - 将 data-id 属性添加到 bootstrap popover 元素内的链接
- android - SearchQueryListener 不返回任何结果
- javascript - 没有使用 React-Redux 传递给孩子的道具
- javascript - 在 JavaScript 中通过函数传递变量 - 我对变量和范围的理解