Vì không có API thích hợp có sẵn cho điểm số cricket, nên kịch bản Python này sẽ thu thập www.espncricinfo.com để có được điểm số của các trận đấu cricket trực tiếp và trình bày chúng một cách được định dạng tốt trong thiết bị đầu cuối! Phiên bản 2.0 mang đến bảng điểm bowling và UX tốt hơn.Ứng dụng thiết bị đầu cuối điểm số cricket trực tiếp
Một kịch bản Python mang điểm số cricket ngay vào thiết bị đầu cuối của bạn trong thời gian thực!
Kịch bản đã được chế tạo cẩn thận để xử lý các đầu vào không phù hợp cho trải nghiệm người dùng hoàn hảo.
Mã này có vẻ điên rồ khi nhìn vào vì đã có rất nhiều việc cạo, làm sạch và định dạng dữ liệu. Hơn nữa, bảng điểm bowling đã được trích xuất trực tiếp từ mã HTML mà không cần sử dụng đẹp. Điều này đã được thực hiện vì các bảng chứa bảng điểm bowling không thể trích xuất từ đẹp.
Bây giờ, hãy nhập nhóm mà bạn muốn xem bảng điểm là đối số dòng lệnh để trực tiếp bỏ qua thẻ điểm!
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều
Nhiệm vụ requests | |
frombs4importBeautifulSoup bs4 import BeautifulSoup | |
fromwin10toastimportToastNotifier win10toast import ToastNotifier | |
Ngăn chặn re | |
FromTimeimports ngủ time import sleep | |
defascii_art []: ascii_art[]: | |
# Một biểu ngữ nghệ thuật cho kịch bản | |
print["""[""" | |
██╗ ██╗██╗ ██████╗██████╗ ██╗ ██████╗██╗ ██╗ ███████╗████████╗ ███████╗ ██████╗ ██████╗ ██████╗ ███╗ | |
██║ ██║██║ ██║██╔════╝ ██╔╝██╔════╝╚══██╔══╝ ═██╗██╔════╝ | |
██║ ██║ ██║ █████╔╝ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ║ ███████╗██║ ██║ | |
██║ ██║╚██╗ ██║ ██╔══██╗██║██║ ██╔═██╗ ██╔══╝ ██║ ╚════██║██║ ██║ | |
███████╗██║ ╚████╔╝ ███████╗ ╚██████╗██║ ╗██║ ██╗███████╗ ██║ ███████║╚██████╗╚██████╔╝██║ ██████╗ | |
╚══════╝╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ "" "]] | |
defget_cien_matches []: get_current_matches[]: | |
# Chức năng tìm kiếm các trận đấu trực tiếp hiện đang chơi | |
page = requests.get ['//static.cricinfo.com/rss/livescores.xml'] # http Nhận yêu cầu đến CRICINFO RSS Feed = requests.get['//static.cricinfo.com/rss/livescores.xml'] # HTTP Get request to cricinfo rss feed | |
Soup = BeautifulSoup [page.text, 'lxml'] = BeautifulSoup[page.text,'lxml'] # parsing and building xml tree out of the returned xml file | |
Matches = súp.find_all ['Mô tả'] # Thẻ mô tả chứa điểm số = soup.find_all['description'] # description tags contain the score | |
live_matches = [s.get_text [] forsinmatchesif '*' ins.get_text []] # chỉ trả về các trận đấu trực tiếp và bỏ qua = [s.get_text[] for s in matches if '*' in s.get_text[]] # returns only the live matches and ignores the completed ones | |
returnlive_matches live_matches | |
Deffetch_score [Matchnum]: fetch_score[matchNum]: | |
# Chức năng trả về điểm số trực tiếp của trận đấu được chỉ định | |
page = requests.get ['//static.cricinfo.com/rss/livescores.xml'] = requests.get['//static.cricinfo.com/rss/livescores.xml'] | |
súp = đẹp [trang.text, 'lxml'] = BeautifulSoup[page.text,'lxml'] | |
Matches = súp.find_all ['Mô tả'] = soup.find_all['description'] | |
live_matches = [s.get_text [] forsinmatchesif '*' ins.get_text []] = [s.get_text[] for s in matches if '*' in s.get_text[]] | |
returnLive_matches [matchnum] live_matches[matchNum] | |
Bỏ qua [điểm]: notify[score]: | |
# Chức năng cho thông báo máy tính để bàn của Windows Toast | |
Toaster = toastnotifier [] = ToastNotifier[] | |
toaster.show_toast [điểm,.show_toast[score, | |
"Đi Ấn Độ, Jai Ho!",, | |
Thời lượng = 10]=10] | |
### Hàm chính ### | |
if__name __ == "__ main__": __name__ == "__main__": | |
ascii_art [][] | |
Matches = get_civerse_matches [] = get_current_matches[] | |
in ['các trận đấu hiện tại trong Play']['Current matches in play'] | |
in ['='*23]['='*23] | |
# in danh sách tất cả các trận đấu trực tiếp hiện tại | |
fori, matchinenumerate [khớp]: i,match in enumerate[matches]: | |
print ['[{}]' .format [i] +['[{}] '.format[i] + | |
Re.Search ['\ d+', match.split ['v'] [0]]. Group []+'vs.'+.search['\D+',match.split['v'][0]].group[] + 'vs.' + | |
Re.Search ['\ d+', match.split ['v'] [1]]. Group [].search['\D+',match.split['v'][1]].group[] | |
] | |
in[][] | |
matchnum = int [input ['chọn số khớp [0,1,2 ...] =>']]]] = int[input['Pick the match number [0,1,2...] => ']] | |
# Hiển thị thông báo máy tính để bàn cứ sau 30 giây | |
Whiletrue: True: | |
current_score = fetch_score [matchnum] = fetch_score[matchNum] | |
Thông báo [current_score][current_score] | |
Ngủ [30][30] |