Baru-baru ini, saya melihat bahwa tidak ada informasi yang relevan tentang crawler Python di komunitas dan perpustakaan, berdasarkan semangat pengembangan all-round QUANT, saya belajar beberapa konsep dan pengetahuan yang berkaitan dengan crawler dengan mudah. Setelah beberapa pemahaman, saya menemukan bahwa
Bagi mereka yang suka berlangganan saham baru, mereka selalu berharap untuk mendapatkan informasi mata uang di bursa pada saat pertama kali. Jelas tidak realistis bagi orang untuk memantau situs web bursa sepanjang waktu. Kemudian Anda perlu menggunakan skrip perayap untuk memantau halaman pengumuman bursa dan mendeteksi pengumuman baru sehingga Anda dapat diberitahu dan diingatkan pada saat pertama kali.
Sebuah program yang sangat sederhana digunakan untuk memulai (script crawler yang sangat kuat jauh lebih kompleks, jadi luangkan waktu Anda terlebih dahulu). Logika program sangat sederhana. Hal ini memungkinkan program untuk mengakses halaman pengumuman pertukaran secara konstan, menganalisis konten HTML yang diperoleh, dan mendeteksi apakah konten label tertentu diperbarui.
Anda dapat menggunakan beberapa kerangka crawler yang berguna. Namun, mengingat persyaratan sangat sederhana, Anda dapat menulisnya secara langsung.
Perpustakaan python berikut harus digunakan:Requests
, yang dapat dipahami sebagai perpustakaan yang digunakan untuk mengakses halaman web.Bs4
, yang dapat dipahami sebagai perpustakaan yang digunakan untuk menganalisis kode HTML di halaman web.
Kode:
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)
Ini dapat diperpanjang, misalnya, ketika pengumuman baru terdeteksi Menganalisis mata uang baru dalam pengumuman, dan menempatkan pesanan secara otomatis untuk berlangganan saham baru.