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
Đố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.
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).
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)
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.