前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【工具】自动搜索Research网站的学术会议排名

【工具】自动搜索Research网站的学术会议排名

作者头像
小锋学长生活大爆炸
发布于 2023-08-09 09:24:38
发布于 2023-08-09 09:24:38
28500
代码可运行
举报
运行总次数:0
代码可运行

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

Research.com是一个可以搜索学术会议网站的影响因子的网站。

好用是好用,但有一个缺点:得手动选择类目。有这么多类目,一个个手动选也太累了。

所以做了一个自动搜索的小工具,效果如图:

当然也是开源的,放到了这里:GitHub - 1061700625/small_tools_v2: 使用tkinter和Python制作的小工具集,非常方便自己扩展

这里也放一波源码,但不一定会常来更新,更新的还是放到上面的github去了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup
from tqdm import tqdm
import threading
import tkinter as tk
import tkinter.messagebox as msgbox
import tkinter.ttk as ttk
import tkinter.simpledialog as simpledialog

def search(keyword):
    filterDisciplines = [
        'animal-science-and-veterinary',
        'biology-and-biochemistry',
        'business-and-management',
        'chemistry',
        'computer-science',
        'earth-science',
        'ecology-and-evolution',
        'economics-and-finance',
        'electronics-and-electrical-engineering',
        'environmental-sciences',
        'genetics-and-molecular-biology',
        'immunology',
        'law-and-political-science',
        'materials-science',
        'mathematics',
        'mechanical-and-aerospace-engineering',
        'medicine',
        'microbiology',
        'neuroscience',
        'physics',
        'plant-science-and-agronomy',
        'psychology',
        'social-sciences-and-humanities',    
    ]

    results = []
    for target in tqdm(filterDisciplines, desc='挨个搜索中...', ncols=60):
        url = 'https://research.com/conference-rankings/' + target

        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82',
        }
        data = {"searchQuery": keyword}
        soup = BeautifulSoup(requests.post(url, json=data, headers=headers).text, 'lxml')
        
        conference_items = soup.find_all('div', class_='conference-item')
        if not conference_items:
            continue
        
        for item in conference_items:    
            rank = item.find(class_='position').getText().replace('Rank', '').strip()
            score = item.find(class_='rankings-info').getText().strip()
            url = item.find('a').get('href').strip()
            title = item.find('a').getText().strip()
            results.append((rank, title, score, url))
        break

    print('排名\t名称\t\t影响因子\t链接')
    for rank, title, score, url in results:
        print(f'{rank}\t{title}\t{score}\t{url}')

    return results


def on_button_click():
    processing = False
    def perform_search(keyword):
        nonlocal processing
        processing = True
        button.config(text="搜索中...", state=tk.DISABLED)
        
        # Clear the output list before performing the search
        output_listbox.delete(*output_listbox.get_children())

        if keyword is not None and len(keyword.strip()) > 0:
            keyword = keyword.strip()
            for rank, title, score, url in search(keyword):
                output_listbox.insert("", "end", values=(rank, title, score, url))
        processing = False
        button.config(text="开始搜索", state=tk.NORMAL)
    
    if not processing:
        keyword = input_entry.get()
        if not keyword.strip():
            msgbox.showinfo("Warning", "请先输入搜索词")
        else:
            t = threading.Thread(target=perform_search, args=[keyword,], daemon=True)
            t.start()

def on_treeview_double_click(event):
    item = output_listbox.selection()
    if item:
        selected_item = output_listbox.item(item, "values")
        if selected_item:
            link = selected_item[3]
            root.clipboard_clear()
            root.clipboard_append(link)
            msgbox.showinfo("Copy", f"Link copied: {link}")


# 粗糙版本,请勿模仿
root = None
output_listbox = None
input_entry = None
button = None
def process():
    global root, output_listbox, input_entry, button
    root = tk.Tk()
    root.title("Research-er")
    # Calculate the center position of the screen
    window_width = 400
    window_height = 300
    screen_width = root.winfo_screenwidth()
    screen_height = root.winfo_screenheight()
    x_position = (screen_width - window_width) // 2
    y_position = (screen_height - window_height) // 2
    root.geometry(f"{window_width}x{window_height}+{x_position}+{y_position}")


    input_entry = tk.Entry(root)
    input_entry.pack(pady=10)

    button = tk.Button(root, text="开始搜索", command=on_button_click)
    button.pack()

    columns = ("Rank", "Name", "Impact Factor", "Link")
    output_listbox = ttk.Treeview(root, columns=columns, show="headings")
    for col in columns:
        output_listbox.heading(col, text=col)
        output_listbox.column(col, width=100, anchor="center")
    output_listbox.pack(pady=10, fill=tk.BOTH, expand=True)

    # Add horizontal and vertical scrollbars to the output listbox
    h_scrollbar = ttk.Scrollbar(root, orient=tk.HORIZONTAL, command=output_listbox.xview)
    v_scrollbar = ttk.Scrollbar(root, orient=tk.VERTICAL, command=output_listbox.yview)
    output_listbox.configure(xscrollcommand=h_scrollbar.set, yscrollcommand=v_scrollbar.set)
    h_scrollbar.pack(fill=tk.X, side=tk.BOTTOM)
    v_scrollbar.pack(fill=tk.Y, side=tk.RIGHT)

    output_listbox.bind("<Double-Button-1>", on_treeview_double_click)

    root.mainloop()


if __name__ == '__main__':
    process()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【软件】自制图像批量压缩工具
GitHub - 1061700625/small_tools_v2: 使用tkinter和Python制作的小工具集,非常方便自己扩展使用tkinter和Python制作的小工具集,非常方便自己扩展. Contribute to 1061700625/small_tools_v2 development by creating an account on GitHub.
小锋学长生活大爆炸
2024/05/25
1060
【软件】自制图像批量压缩工具
CodeBuddy实现图片水印添加工具
如今,电商平台竞争激烈,辛苦拍摄的商品图极易被同行盗用。使用在线水印工具上传图片时,存在数据泄露风险,且第三方服务器存储的图片也可能被不法分子获取,导致商品图被盗用,辛苦打造的商品形象和销量被他人不劳而获。
Undoom
2025/05/26
860
CodeBuddy实现图片水印添加工具
CodeBuddy实现图片水印添加工具
如今,电商平台竞争激烈,辛苦拍摄的商品图极易被同行盗用。使用在线水印工具上传图片时,存在数据泄露风险,且第三方服务器存储的图片也可能被不法分子获取,导致商品图被盗用,辛苦打造的商品形象和销量被他人不劳而获。
Undoom
2025/05/24
1070
用 CodeBuddy 开发本地 PDF 转图工具
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
Undoom
2025/05/24
930
使用 CodeBuddy 实现视频合并工具:解决本地视频处理痛点
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
Undoom
2025/05/24
710
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
本篇文章主要python第三方库Tkinter库的使用,包括输入框(Entry)控件,Spinbox控件,Listbox(列表框)控件和Combobox(复合框)控件它们的常用属性和方法以及具体的示例和相应的效果图。
laity
2025/02/27
4860
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
Python GUI编程:Tkinter
Python里的图形化界面(GUI)模块主要有Tkinter(python自带)、PyQt、wxPython,我们这节主要讲解Tkinter组件:
小雨coding
2020/08/03
7.6K0
Tkinter常用功能示例(一)
Tkinter是一个Python自带的GUI框架,虽然现在主流的还是用pyqt的多一些,但是Tkinter在环境配置上可以节省很多工作,可以用来做一些小项目。如果是大型项目,用pyqt或者QT确实会更加专业一些。本文主要介绍一些简单的Tkinter的示例,比如文本框定义、标签定义和TreeView定义等。
DechinPhy
2024/04/17
4800
Tkinter常用功能示例(一)
TXT处理小工具(过滤、分割功能)分享
很酷的站长
2023/09/24
4750
TXT处理小工具(过滤、分割功能)分享
贪吃蛇
当然可以!这里是一个使用Tkinter库的Python贪吃蛇游戏,包含用户注册和登录功能。首先,确保您已经安装了Python和Tkinter库。
用户7138673
2023/08/16
2870
贪吃蛇
【踩坑】解决运行一段时间GPU计算后忽然变得很慢
3、看图就知道,密集的GPU运算,导致GPU温度达到限制了。高温限制是会影响性能的。
小锋学长生活大爆炸
2024/06/28
5200
Python tkinter 制作文章搜索软件,有没有方便快捷不知道,好玩就行了
前言 无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了 环境使用 Python 3.8 Pycharm 模块使用 import requests import tkinter as tk from tkinter import ttk import webbrowser 最终效果 有疑问的同学,或者想要Python相关资料的可以加群:326937069找管理员领取资料和一对一解答 界面实现代码 导入模块 import tkinter as tk from tkinter impo
松鼠爱吃饼干
2022/12/05
3710
Python tkinter 制作文章搜索软件,有没有方便快捷不知道,好玩就行了
五分钟技术分享使用Python快速制作UI界面
今天花五分钟我们聊聊使用Python快速制作UI,在开发过程中我们会有一些测试工具的需求,只注重功能,并不在乎UI的美观性,只要够稳定,开发速度够快。
keyle
2024/11/01
4790
五分钟技术分享使用Python快速制作UI界面
【工具】图片对比搜索软件,附代码
有一张目标图片,想从一堆图片里找到这张目标图片或者说相似度最高的图片。
小锋学长生活大爆炸
2024/05/25
2650
【工具】图片对比搜索软件,附代码
测试之路 pytest接口自动化框架扩展-GUI窗口
本期先从数据入口开始,扩展脚本初期就一直在考虑,如何能不接触代码, 完完全全以界面的形式接收数据源,通过点击两个按钮,就可以实现上传需要解析的json文件,然后再点击一个按钮就去执行接口自动化脚本。想到界面就想到了窗口,于是就从网上搜索了pyqt5与python自带的tkinter的教程。综合了解了一下这两个工具包
歪小王
2022/12/12
3.2K0
测试之路 pytest接口自动化框架扩展-GUI窗口
二维码生成器工具开发
本文将使用 Python 的tkinter库和qrcode库创建一个简单的二维码生成器应用。这个应用允许用户输入文本或链接,然后生成相应的二维码,并可以设置二维码的颜色和保存路径。
M.Talen
2024/10/13
3040
二维码生成器工具开发
Python 快速实现一个分词处理器
今天要分享的是AI编程技巧,用Python + Trae 快速实现一个分词处理器。
软件架构师Michael
2025/04/09
1370
​Python | GUI编程之tkinter (一)
本文内容为使用Python3的tkinter模块,开发GUI。在阅读本文前,请确保你已经或可能满足以下条件:
LogicPanda
2019/07/30
6.4K0
AI神助攻!小白也能制作自动重命名工具~
我们平时从网上下载一些文件,文件名很多都是一大串字母和数字,不打开看看,根本不知道里面是什么内容。
zhanyd
2024/05/08
2350
AI神助攻!小白也能制作自动重命名工具~
五一假期畅游指南:Python技术构建的热门景点分析系统解读
五一假期即将到来,作为一名热爱旅游的技术达人,我总是希望能够通过技术手段更好地规划我的旅行路线。在这篇文章中,我将向大家介绍一款基于Python技术的热门景点分析系统,帮助您在五一假期中游玩得更加尽兴!
小白学大数据
2024/06/08
1020
相关推荐
【软件】自制图像批量压缩工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验