Python tkinter 制作文章搜索软件,有没有方便快捷不知道,好玩就行了 ...

打印 上一主题 下一主题

主题 894|帖子 894|积分 2682

前言

无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了
环境使用


  • Python 3.8
  • Pycharm
模块使用


  • import requests
  • import tkinter as tk
  • from tkinter import ttk
  • import webbrowser
最终效果


对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:753182387】

界面实现代码

导入模块
  1. import tkinter as tk
  2. from tkinter import ttk
复制代码
创建窗口
  1. root = tk.Tk()
  2. root.title('问题搜索')
  3. root.geometry('900x700+100+100')
  4. root.iconbitmap('search.ico')
  5. root.mainloop()
复制代码

标题图片
  1. img = tk.PhotoImage(file='封面.png')
  2. tk.Label(root, image=img).pack()
复制代码

搜索框
  1. search_frame = tk.Frame(root)
  2. search_frame.pack(pady=10)
  3. search_va = tk.StringVar()
  4. tk.Label(search_frame, text='问题描述:', font=('黑体', 15)).pack(side=tk.LEFT, padx=5)
  5. tk.Entry(search_frame, relief='flat', width=30, textvariable=search_va).pack(side=tk.LEFT, padx=5, fill='both')
  6. tk.Button(search_frame, text='搜索一下', font=('黑体', 12), relief='flat', bg='#fe6b00').pack(side=tk.LEFT,padx=5)
复制代码

内容显示界面
  1. tree_view = ttk.Treeview(root, show="headings")
  2. tree_view.column('num', width=1, anchor='center')
  3. tree_view.column('title', width=150, anchor='w')
  4. tree_view.column('author', width=10, anchor='center')
  5. tree_view.column('date', width=10, anchor='center')
  6. tree_view.column('link', width=30, anchor='center')
  7. tree_view.heading('num', text='序号')
  8. tree_view.heading('title', text='标题')
  9. tree_view.heading('author', text='作者')
  10. tree_view.heading('date', text='发布时间')
  11. tree_view.heading('link', text='链接')
  12. tree_view.pack(fill=tk.BOTH, expand=True, pady=5)
复制代码

内容效果代码
  1. def search(word):
  2.     search_list = []
  3.     num = 0
  4.     for page in range(1, 4):
  5.         url = 'https://so.csdn.net/api/v3/search'
  6.         data = {
  7.             'q': word,
  8.             't': 'all',
  9.             'p': page,
  10.             's': '0',
  11.             'tm': '0',
  12.             'lv': '-1',
  13.             'ft': '0',
  14.             'l': '',
  15.             'u': '',
  16.             'ct': '-1',
  17.             'pnt': '-1',
  18.             'ry': '-1',
  19.             'ss': '-1',
  20.             'dct': '-1',
  21.             'vco': '-1',
  22.             'cc': '-1',
  23.             'sc': '-1',
  24.             'akt': '-1',
  25.             'art': '-1',
  26.             'ca': '-1',
  27.             'prs': '',
  28.             'pre': '',
  29.             'ecc': '-1',
  30.             'ebc': '-1',
  31.             'urw': '',
  32.             'ia': '1',
  33.             'dId': '',
  34.             'cl': '-1',
  35.             'scl': '-1',
  36.             'tcl': '-1',
  37.             'platform': 'pc',
  38.         }
  39.         headers = {
  40.             'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
  41.         }
  42.         response = requests.get(url=url, params=data, headers=headers)
  43.         for index in response.json()['result_vos']:
  44.             title = index["title"].replace('<em>', '').replace('</em>', '')
  45.             dit = {
  46.                 'num': num,
  47.                 'title': title,
  48.                 'author': index['nickname'],
  49.                 'date': index['create_time_str'],
  50.                 'link': index['url'],
  51.             }
  52.             num += 1
  53.             search_list.append(dit)
  54.     return search_list
  55. def show(search_list):
  56.     # 往树状图中插入数据
  57.     for index, stu in enumerate(search_list):
  58.         tree_view.insert('', index + 1,
  59.                          values=(stu['num'], stu['title'], stu['author'], stu['date'], stu['link']))
  60. def click():
  61.     key_word = search_va.get()
  62.     if key_word:
  63.         search_list = search(word=key_word)
  64.         # 往树状图中插入数据
  65.         show(search_list)
  66. # 单击 获取当前点击行的值
  67. def tree_view_click(event):
  68.     # 遍历选中的元素
  69.     for item in tree_view.selection():
  70.         # 获取选中元素的值
  71.         item_text = tree_view.item(item, "values")
  72.         # 打印选中元素的值
  73.         # print(item_text)
  74.         webbrowser.open(item_text[-1])
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表