Khám phá ban đầu về ứng dụng Python Crawler trên FMZ Crawling Binance Content Announcement

Tác giả:Ninabadass, Tạo: 2022-04-08 15:47:43, Cập nhật: 2022-04-13 10:07:13

Khám phá ban đầu về việc áp dụng Python Crawler trên FMZ Crawling Binance Nội dung thông báo

Gần đây, tôi đã xem qua các diễn đàn của chúng tôi, và không có thông tin liên quan về trình thu thập thông tin Python. Dựa trên tinh thần phát triển toàn diện của FMZ, tôi chỉ đơn giản là tìm hiểu về các khái niệm và kiến thức của trình thu thập thông tin. Sau khi tìm hiểu về nó, tôi thấy rằng vẫn còn nhiều điều để tìm hiểu về kỹ thuật crawler. Bài viết này chỉ là một khám phá sơ bộ về kỹ thuật crawler, và một thực hành đơn giản nhất của kỹ thuật crawler trên nền tảng giao dịch FMZ Quant.

Nhu cầu

Đối với các nhà giao dịch thích giao dịch IPO, họ luôn muốn có được thông tin niêm yết nền tảng càng sớm càng tốt.

Khám phá ban đầu

Sử dụng một chương trình rất đơn giản để bắt đầu (các kịch bản trình thu thập dữ liệu thực sự mạnh mẽ phức tạp hơn nhiều, vì vậy hãy dành thời gian của bạn).

Thực hiện mã

Bạn có thể sử dụng một số cấu trúc trình thu thập thông tin hữu ích.

Các thư viện python được sử dụng:requests, có thể đơn giản được coi là thư viện được sử dụng để truy cập các trang web.bs4, có thể đơn giản được coi là thư viện được sử dụng để phân tích mã HTML của các trang web.

Mã:

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)

Hoạt động

img

img

Bạn thậm chí có thể mở rộng nó, chẳng hạn như phát hiện thông báo mới, phân tích các biểu tượng tiền tệ mới niêm yết và tự động đặt hàng giao dịch IPO.


Thêm nữa