Baru-baru ini, saya melihat melalui Forum dan Digest kami, dan tidak ada maklumat yang relevan mengenai crawler Python. Berdasarkan semangat FMZ pembangunan komprehensif, saya hanya belajar tentang konsep dan pengetahuan crawler. Setelah belajar tentangnya, saya mendapati bahawa masih ada lebih banyak yang perlu dipelajari mengenai
Bagi peniaga yang suka perdagangan IPO, mereka selalu ingin mendapatkan maklumat penyenaraian platform secepat mungkin. Jelas tidak realistik untuk menatap laman web platform secara manual sepanjang masa. Kemudian anda perlu menggunakan skrip perayap untuk memantau halaman pengumuman platform, dan mengesan pengumuman baru untuk dimaklumkan dan diingatkan pada kali pertama.
Gunakan program yang sangat mudah sebagai permulaan (script perayap yang benar-benar kuat jauh lebih kompleks, jadi ambil masa anda). Logik program sangat mudah, iaitu, biarkan program terus melawat halaman pengumuman platform, menganalisis kandungan HTML yang diperoleh, dan mengesan sama ada kandungan label yang ditentukan dikemas kini.
Anda boleh menggunakan beberapa struktur crawler yang berguna. memandangkan permintaan adalah sangat mudah, anda juga boleh menulis secara langsung.
Perpustakaan Python yang akan digunakan:requests
, yang boleh dianggap sebagai perpustakaan yang digunakan untuk mengakses halaman web.bs4
, yang boleh dianggap sebagai perpustakaan yang digunakan untuk menganalisis kod HTML halaman web.
Kod:
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)
Anda juga boleh memperluaskannya, seperti pengesanan pengumuman baru, analisis simbol mata wang yang baru disenaraikan, dan pesanan automatik perdagangan IPO.