Recientemente, miré a través de nuestros Foros y Digest, y no hay información relevante sobre el rastreador de Python. Basado en el espíritu de desarrollo integral de FMZ, simplemente fui a aprender sobre los conceptos y el conocimiento del rastreador. Después de aprender al respecto, descubrí que todavía hay más por aprender sobre la técnica del rastreador. Este artículo es solo una exploración preliminar de la técnica del rastreador, y una práctica más simple de la técnica del rastreador en la plataforma comercial FMZ Quant.
Para los comerciantes que les gusta el comercio de IPO, siempre quieren obtener la información de lista de la plataforma tan pronto como sea posible. Obviamente no es realista mirar manualmente un sitio web de la plataforma todo el tiempo.
Utilice un programa muy simple como comienzo (los scripts de rastreador realmente potentes son mucho más complejos, así que tómese su tiempo). La lógica del programa es muy simple, es decir, deje que el programa visite continuamente la página de anuncio de una plataforma, analice el contenido HTML adquirido y detecte si el contenido de una etiqueta especificada se actualiza.
Puedes usar algunas estructuras de rastreador útiles.
Las bibliotecas de Python que se utilizarán:requests
, que puede considerarse simplemente como la biblioteca utilizada para acceder a páginas web.bs4
, que puede considerarse simplemente como la biblioteca utilizada para analizar el código HTML de las páginas web.
Código:
from bs4 import BeautifulSoup
import requests
urlBinanceAnnouncement = "https://www.binancezh.io/en/support/announcement/c-48?navId=48" # Binance announcement web 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 "requests" library to access url, namely the Binance announcement web page address
if r.status_code == 200:
r.encoding = 'utf-8'
# Log("success! {}".format(url))
return r.text # if the access succeeds, return the text of the page content
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 the page text into objects
lastNews_href = soup.find('a', class_='css-1ej4hfo')["href"] # find specified lables, to obtain href
lastNews = soup.find('a', class_='css-1ej4hfo').get_text() # obtain the content in the label
if preNews_href == "":
preNews_href = lastNews_href
if preNews_href != lastNews_href: # the label change detected, namely the new announcement generated
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)
Incluso puede extenderlo, como la detección de nuevos anuncios, análisis de símbolos de divisas recién listados y orden automático de operaciones de IPO.