【发布时间】:2021-04-17 23:42:51
【问题描述】:
我开始为一个鞋类网站做一个监视器 python。现在我想知道是否有办法知道网站何时更新。例如:如果可用鞋码发生变化 -> 将 webhook 发送到我的 discord
我不知道如何检测网站上的更改。请帮助我。如果您有任何想法,请告诉我:)
from dhooks import Webhook, Embed
import requests
import bs4
from bs4 import BeautifulSoup
import lxml
url = "https://en.aw-lab.com/women/shoes/new-arrivals-AW_10008AAQB.html?cgid=women_shoes_newin&dwvar_AW__10008AAQB_color=5011614"
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
res = requests.get(url, headers=headers)
res.raise_for_status()
soup = BeautifulSoup(res.text, "lxml")
img_shoes = "https://en.aw-lab.com/dw/image/v2/BCLG_PRD/on/demandware.static/-/Sites-awlab-master-catalog/default/dwd9415a8e/images/large/5011614_0.jpg?sw=843"
size = soup.select(".b-size-selector__item-0")
array_size = []
url_shoes = "[ADIDAS SUPERSTAR BOLD](" + url + ")"
embed = Embed(
description=url_shoes,
color=0x5CDBF0,
timestamp='now'
)
for sizes in size:
get_sizes = sizes.getText()
array_size.append(get_sizes.strip())
embed.add_field(name="Size", value=('\n'.join(map(str, array_size))))
embed.set_thumbnail(img_shoes)
hook.send(embed=embed)
【问题讨论】:
-
如果您正在监控,您应该将收集到的数据保存在数据库中。您可以创建一个名为 shoes(或其他)的表并添加一些列,例如 id、名称、品牌、网站链接、商店等。您将创建另一个表并为鞋子添加一个 ForeignKey,其中包含价格和时间戳。每次您的脚本运行时,它都会添加另一条记录,如果价格小于您上次发送信号时的价格。要每 5 分钟自动运行一次脚本,您可以使用 cron。
-
你可能不应该分享你的 webhook api-details。那些很敏感......
-
谢谢你 jlaur 我已经删除了我的 api-details。
标签: python web-scraping beautifulsoup python-requests