Es werden auch Vorteile von der Regierung bereitgestellt, daher möchte ich ein iPad, das ich nicht hatte, zu einem niedrigen Preis mit Wartungsartikeln kaufen! Ich dachte. Klicken Sie hier für Wartungsartikel → https://www.apple.com/jp/shop/refurbished
Was ich wollte, war ein iPad Air (3. Generation), aber zum Zeitpunkt des Schreibens dieses Artikels war es ein ziemlicher Kampf, und selbst wenn es neu angehoben wurde, würde es sofort getötet werden. Deshalb habe ich mich entschlossen, es durch regelmäßiges Schaben zum Kauf anzubieten, damit andere Leute nicht überholt werden und mich mit Slack benachrichtigen, damit ich problemlos ein Python-Programm erstellen und das iPad Air sicher warten kann. Ich konnte den Artikel kaufen, daher werde ich ihn dieses Mal vorstellen.
・ Python ・ Schöne Suppe ・ Slack API ・ Windows-Zeitplan
pip install requests
pip install beautifulsoup4
pip install lxml
Ich habe einen Slack gemacht, den nur ich hatte, und eine Benachrichtigung gepostet, indem ich die API in Form des Links (https://qiita.com/ik-fib/items/b4a502d173a22b3947a0) gepostet habe. Ich habe Incoming Webhooks bekommen und verlinkt.
Ich kratzte mit Beautiful Soup und Python3. Dieses Mal wollte ich die Verkaufsliste von iPad Air erhalten, daher versuche ich zu benachrichtigen, wenn die Zeichenketten "Air" und "Wi-Fi" enthalten sind. (Da die Menüleiste nur mit Air benachrichtigt wird, ist auch die Wi-Fi-Zeichenfolge enthalten.) Wenn Sie ein iPad Pro wollen, können Sie "Pro" machen, und wenn Sie ein iPad mini wollen, können Sie "Mini" machen (ich weiß nicht, was ich tun soll, wenn es nicht markiert ist ...)
apple.py
# coding:utf-8
from bs4 import BeautifulSoup
import json
import requests
if(__name__ == "__main__"):
url="https://www.apple.com/jp/shop/refurbished/ipad"#Liste der überholten Produkte für das iPad
headers = {"User-Agent": "Mozilla/5.0"}
soup2 = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')#Holen Sie sich HTML
a_tags=soup2.select("a")#<a>Tags abrufen
for entry in a_tags:#Jeder erworben<a>Über Tags
if 'Air' in entry.text and 'Wi-Fi' in entry.text:#Wenn Sie iPad Air haben
slackapi="API des Slack-Arbeitsbereichs, den Sie veröffentlichen möchten"
text = '<!channel> '+entry.text
#Benachrichtigen Sie Slack
requests.post(slackapi, data = json.dumps({
"text": text
}))
Dieses Mal hatte ich einen Windows-Desktop, der immer aktiviert war, daher habe ich den Windows-Taskplaner verwendet, um Python regelmäßig auszuführen. (Ich denke, es ist gut, Lambda von AWS zu verwenden)
Informationen zur Einstellungsmethode des Taskplaners finden Sie hier (https://qiita.com/kawa-Kotaro/items/4005a43eb686eae41448). Übrigens habe ich alle 5 Minuten zwei Trigger gemacht und sie alle zweieinhalb Minuten ausgeführt.
Häufiges Scraping über einen kurzen Zeitraum kann den Webserver überfordern, die gecrawlte Seite stören oder als DoS-Angriff betrachtet werden (ein Angriff, der den Server überlastet und den Dienst stört). Also sei vorsichtig.
Wenn alles gut geht, können Sie Slack folgendermaßen benachrichtigen: In einigen Fällen ist es möglicherweise schneller als der Twitter-Bot, der überholte Produkte veröffentlicht.
Recommended Posts