
Gần đây tôi đã xem cộng đồng và thư viện và không tìm thấy thông tin liên quan nào về trình thu thập dữ liệu Python, dựa trên tinh thần phát triển toàn diện như một QUANT. Tôi đã học được các khái niệm và kiến thức liên quan đến trình thu thập thông tin một cách rất đơn giản. Sau khi tìm hiểu thêm về nó, tôi phát hiện ra rằng “công nghệ bánh xích” là một “hố” khá lớn. Bài viết này chỉ là một cuộc khám phá sơ bộ về “công nghệ bánh xích”. Chúng ta hãy cùng thực hành công nghệ thu thập dữ liệu đơn giản nhất trên nền tảng giao dịch định lượng FMZ.
Đối với các nhà giao dịch muốn đầu tư vào các đồng tiền mới, họ luôn hy vọng có được thông tin về các đồng tiền được niêm yết trên sàn giao dịch càng sớm càng tốt. Rõ ràng là không thực tế khi theo dõi trang web trao đổi theo cách thủ công. Sau đó, bạn cần sử dụng một tập lệnh thu thập thông tin để theo dõi trang thông báo trao đổi và phát hiện các thông báo mới để có thể được thông báo và nhắc nhở sớm nhất có thể.
Chúng ta hãy sử dụng một chương trình rất đơn giản để bắt đầu (một tập lệnh thu thập dữ liệu thực sự mạnh mẽ sẽ phức tạp hơn nhiều, vì vậy hãy từ từ). Logic của chương trình rất đơn giản, đó là cho phép chương trình liên tục truy cập vào trang thông báo của sàn giao dịch, phân tích nội dung HTML thu được và phát hiện xem nội dung của thẻ cụ thể có được cập nhật hay không.
Bạn có thể sử dụng một số khung thu thập thông tin hữu ích. Tuy nhiên, vì yêu cầu này rất đơn giản nên cũng có thể viết trực tiếp.
Các thư viện Python cần có:
requests, có thể hiểu đơn giản là một thư viện dùng để truy cập các trang web.
bs4, có thể hiểu đơn giản là một thư viện được sử dụng để phân tích cú pháp mã HTML của một trang web.
Mã số:
from bs4 import BeautifulSoup
import requests
urlBinanceAnnouncement = "https://www.binancezh.io/en/support/announcement/c-48?navId=48" # 币安公告页面地址
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) # 使用requests库访问url,即币安的公告网页地址
if r.status_code == 200:
r.encoding = 'utf-8'
# Log("success! {}".format(url))
return r.text # 访问成功的话返回网页内容文本
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') # 把网页文本解析为对象
lastNews_href = soup.find('a', class_='css-1ej4hfo')["href"] # 查找特定的标签,获取href
lastNews = soup.find('a', class_='css-1ej4hfo').get_text() # 获取这个标签中的内容
if preNews_href == "":
preNews_href = lastNews_href
if preNews_href != lastNews_href: # 检测到标签发生变动,即有新的公告产生
Log("New Cryptocurrency Listing update!") # 打印提示信息
preNews_href = lastNews_href
LogStatus(_D(), "\n", "preNews_href:", preNews_href, "\n", "news:", lastNews)
Sleep(1000 * 10)


Thậm chí, nó có thể được mở rộng để phát hiện thời điểm có thông báo mới xuất hiện chẳng hạn. Phân tích các loại tiền tệ mới được liệt kê trong thông báo và tự động đặt lệnh cho các giao dịch mới.