Vor kurzem habe ich gesehen, dass es keine relevanten Informationen über Python-Crawler in der Community und Bibliothek gibt, basierend auf dem Geist der Allround-Entwicklung von QUANT, habe ich einige Konzepte und Kenntnisse im Zusammenhang mit Crawlern einfach gelernt. Nach einigem Verständnis habe ich festgestellt, dass die
Für diejenigen, die gerne neue Aktien abonnieren, hoffen sie immer, die Informationen über die Währung an der Börse beim ersten Mal zu erhalten. Es ist offensichtlich unrealistisch für Menschen, die Börse-Website die ganze Zeit zu überwachen. Dann müssen Sie das Crawler-Skript verwenden, um die Börsenankündigungsseite zu überwachen und neue Ankündigungen zu erkennen, damit Sie beim ersten Mal benachrichtigt und erinnert werden können.
Ein sehr einfaches Programm wird verwendet, um zu starten (ein wirklich leistungsstarkes Crawler-Skript ist viel komplexer, also nehmen Sie sich zuerst Zeit). Die Programmlogik ist sehr einfach. Es ermöglicht dem Programm, ständig auf die Ankündigungsseite der Börse zuzugreifen, den erhaltenen HTML-Inhalt zu analysieren und zu erkennen, ob der spezifische Label-Inhalt aktualisiert wird.
Sie können einige nützliche Crawler-Frameworks verwenden. Da die Anforderungen jedoch sehr einfach sind, können Sie sie direkt schreiben.
Die folgenden Python-Bibliotheken müssen verwendet werden:Requests
, die einfach als Bibliothek für den Zugriff auf Webseiten verstanden werden kann.Bs4
, die einfach als Bibliothek verstanden werden kann, die zum Parsen von HTML-Code auf Webseiten verwendet wird.
Code:
from bs4 import BeautifulSoup
import requests
urlBinanceAnnouncement = "https://www.binancezh.io/en/support/announcement/c-48?navId=48" # Binance announcement page address
def openUrl(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}
r = requests.get(url, headers=headers) # Use the requests library to access the url, i.e. the address of the Binance announcement page
if r.status_code == 200:
r.encoding = 'utf-8'
# Log("success! {}".format(url))
return r.text # Return page content text if access is successful
else:
Log("failed {}".format(url))
def main():
preNews_href = ""
lastNews = ""
Log("watching...", urlBinanceAnnouncement, "#FF0000")
while True:
ret = openUrl(urlBinanceAnnouncement)
if ret:
soup = BeautifulSoup(ret, 'html.parser') # Parse web text into objects
lastNews_href = soup.find('a', class_='css-1ej4hfo')["href"] # Find a specific tag, get href
lastNews = soup.find('a', class_='css-1ej4hfo').get_text() # Get the content in this tag
if preNews_href == "":
preNews_href = lastNews_href
if preNews_href != lastNews_href: # A new announcement is generated when a label change is detected
Log("New Cryptocurrency Listing update!") # Print the prompt message
preNews_href = lastNews_href
LogStatus(_D(), "\n", "preNews_href:", preNews_href, "\n", "news:", lastNews)
Sleep(1000 * 10)
Sie kann beispielsweise verlängert werden, wenn eine neue Ankündigung erkannt wird.