本文共 3327 字,大约阅读时间需要 11 分钟。
?????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????
?????????
???????????????????????????????????????????
????????????????????????????????????????????Python?????????requests
????????BeautifulSoup
?????????????????????????
import requestsfrom bs4 import BeautifulSoupimport csv# ??????def get_chinese_riddles(): # ????????? riddles_links = [] soup = BeautifulSoup(requests.get('https://example.com/hompage.html'), 'html.parser') for link in soup.find_all('a', {'target': '_blank'}): riddles_links.append(link.get('href')) # ??????????? riddle_data = [] for link in riddles_links: soup = BeautifulSoup(requests.get(link, 'html.parser'), 'html.parser') for riddle in soup.find_all('div', {'class': 'riddle-container'}): try: prompt = riddle.find('p', {'class': 'prompt'}).text.strip() question = riddle.find('p', {'class': 'question'}).text.strip() answer = riddle.find('p', {'class': 'answer'}).text.strip() riddle_data.append({ 'prompt': prompt, 'question': question, 'answer': answer }) except: pass return riddle_data# ???if __name__ == '__main__': riddles = get_chinese_riddles() # ???csv?? with open('riddles.csv', 'w') as f: csv.writer(f).writerow(riddles)
????????????????????pandas
???????DataFrame??????????
import pandas as pd# ??csv??data = pd.read_csv('riddles.csv')# ????print(data.head())
????????????????????????JSON???
data.to_json('riddles.json')
??tkinter
?????????????????????????????????????
from tkinter import *from tkinter.messagebox import showinfoimport random# ?????root = Tk()root.title('??????')root.geometry('600x400')# ????def get_riddle(): global riddle_index riddle_index = random.randint(0, len(riddles_list)) riddle_label.config(text=riddles_list[riddle_index]['prompt'])def check_answer(entry): global riddle_index if entry.strip() == riddles_list[riddle_index]['answer']: showinfo('??', '???') else: showinfo('??', '???')def show_tip(): showinfo('??', riddles_list[riddle_index]['question'])# ???riddles_list = []try: data = pd.read_json('riddles.json') riddles_list = data.to_dict('records')except: print('??????')# ????riddle_label = Label(root, text='??????', font=('Arial', 20, 'bold'))riddle_label.pack(pady=20)entry = Entry(root)entry.pack(pady=10)button_change = Button(root, text='????', command=get_riddle)button_change.pack(pady=10)button_check = Button(root, text='????', command=lambda: check_answer(entry))button_check.pack(pady=10)button_tip = Button(root, text='????', command=show_tip)button_tip.pack(pady=10)# ???root.mainloop()
??pyinstaller
?Python????????????????????
pyinstaller
?pip install pyinstaller
pyinstaller main.py
cd distpython -O main.py
???????????????????????????????????????????????????????????????????????
转载地址:http://iwpd.baihongyu.com/