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

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

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

 

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

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

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

 

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

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 simpledialogdef 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/' + targetheaders = {'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:continuefor 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))breakprint('排名\t名称\t\t影响因子\t链接')for rank, title, score, url in results:print(f'{rank}\t{title}\t{score}\t{url}')return resultsdef on_button_click():processing = Falsedef perform_search(keyword):nonlocal processingprocessing = Truebutton.config(text="搜索中...", state=tk.DISABLED)# Clear the output list before performing the searchoutput_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 = Falsebutton.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, buttonroot = tk.Tk()root.title("Research-er")# Calculate the center position of the screenwindow_width = 400window_height = 300screen_width = root.winfo_screenwidth()screen_height = root.winfo_screenheight()x_position = (screen_width - window_width) // 2y_position = (screen_height - window_height) // 2root.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 listboxh_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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/73701.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP杂谈之Referer和Origin请求头再探

一 关于Referer和Origin的汇总 1) 知识是凌乱的,各位看官看个热闹即可2) 内容不断更新1、理解有盲区,需要及时纠正2、内容交叉有重复,需要适当删减3、扩展视野3) 以下内容都与Referer和Origin请求头有关联 nginx防盗链 HTTP杂谈之Referrer-Policy响应头 iframe标签referre…

新手入门Jenkins自动化部署入门详细教程

1. 背景 在实际开发中&#xff0c;我们经常要一边开发一边测试&#xff0c;当然这里说的测试并不是程序员对自己代码的单元测试&#xff0c;而是同组程序员将代码提交后&#xff0c;由测试人员测试&#xff1b; 或者前后端分离后&#xff0c;经常会修改接口&#xff0c;然后重新…

vue element el-upload附件上传、在线预览、下载当前预览文件

上传 在线预览&#xff08;iframe&#xff09;&#xff1a; payload&#xff1a; response&#xff1a; 全部代码&#xff1a; <template><div><el-table :data"tableData" border style"width: 100%"><el-table-column prop"d…

.Net6 Core Web API 配置 log4net + MySQL

目录 一、导入NuGet 包 二、添加配置文件 log4net.config 三、创建MySQL表格 四、Program全局配置 五、帮助类编写 六、效果展示 小编没有使用依赖注入的方式。 一、导入NuGet 包 ---- log4net 基础包 ---- Microsoft.Extensions.Logging.Log4Net…

天线辐射机制

电磁场如何从源中产生并最终脱离天线辐射到自由空间中去的呢&#xff1f;让我们首先来研究一下一些基本的辐射源。 1、单线Single Wire 导线是一种电荷运动产生电流特性的材料&#xff0c;假设用qv&#xff08;库仑/m3&#xff09;表示的一个电体积电荷密度均匀分布在一个横截…

ansible控制主机和受控主机之间免密及提权案例

目录 案例描述 环境准备 案例一--免密远程控制主机 效果展示&#xff1a; 解决方案 1.添加主机 2.通过ssh-key生成密钥对 3.生成ssh-copy-id 4.验证 案例二-----免密普通用户提权 效果展示 解决方案 1.使用普通用户&#xff0c;与案例一 一样&#xff0c;进行发送密钥…

pytest 自定义HOOK函数

除了系统提过的HOOK函数外&#xff0c;也可以通过自定义HOOK的方式实现想要的功能。 首先创建一个py文件&#xff0c;里面定义自己的HOOK函数&#xff0c;主要pytest里面的hook函数必须以pytest开头。 #myhook.pydef pytest_myhook(user):"""自定义HOOK函数&q…

【JavaEE初阶】Servlet(四) Cookie Session

文章目录 1. Cookie && Session1.1 Cookie && Session1.2 Servlet会话管理操作 1. Cookie && Session 1.1 Cookie && Session Cookie是什么? Cookie是浏览器提供的持久化存储数据的机制.Cookie从哪里来? Cookie从服务器返回给浏览器. 服务…

中小企业如何做好MES管理系统实施建设

中小企业在生产制造领域面临着诸多挑战&#xff0c;包括提升产品竞争力、规范生产制造等。为了应对这些挑战&#xff0c;越来越多的中小企业开始实施MES生产管理系统。然而&#xff0c;由于企业规模小、资源实力不足等原因&#xff0c;很多企业在实施MES管理系统时存在一定的困…

opencv rtsp 硬件解码

讨论使用opencv的reader 硬件解码的方案有太多种&#xff0c;如果使用ffmpeg硬件解码是最方便的&#xff0c;不方便的是把解码过后的GPU 拉到 CPU 上&#xff0c;再使用opencv的Mat 从cpu 上上载到gpu上&#xff0c;是不是多了两个过程&#xff0c;应该是直接从GPU mat 直接去…

腾讯测试大佬分享4个关于 Python 函数(方法)的冷知识

关于参数标识 不知道大家在工作中有没有遇到一种情况&#xff0c;你的同事 A 写了一个方法给你调用&#xff0c;然后你调用时不知道该传什么参数&#xff0c;然后这个同事 A 还很 cao dan 的居然不加班&#xff01;你一脸茫然的看着这个方法&#xff0c;当你尝试传进去一个 ab…

使用pg_prewarm缓存PostgreSQL数据库表

pg_prewarm pg_prewarm 直接利用系统缓存的代码,对操作系统发出异步prefetch请求&#xff0c;在应用中&#xff0c;尤其在OLAP的情况下&#xff0c;对于大表的分析等等是非常耗费查询的时间的&#xff0c;而即使我们使用select table的方式&#xff0c;这张表也并不可能将所有…

后端整理(MySql)

1 事务 1.1 事务ACID原则 原子性&#xff08;Atomicity&#xff09; 事务的原子性指的是事务的操作&#xff0c;要么全部成功&#xff0c;要么全部失败回滚 一致性&#xff08;Consistency&#xff09; 事务的一致性是指事务必须使数据库从一个一致状态转变成另一个一致性…

hugging face下载数据集

开始直接执行这个&#xff0c;下载下来的图片打不开 git clone https://huggingface.co/datasets/diffusers/dog-example 解决办法&#xff1a; 安装git lfs 1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash 2. sudo apt…

会议OA系统会议管理模块开发思路(layui搭建)

目录 一.为什么要进行开发 1.开发目的 2.项目流程 A.发起会议请求过程 1.首先实现我们的多选下拉框功能&#xff01; 2.时间组件功能&#xff0c;并且提交我们新增加的会议内容 3.在进行发起会议编码时遇到的问题&#xff0c;BUG 3.1.有点时候js访问不到路径 3.2在增加…

Ctfshow web入门 JWT篇 web345-web350 详细题解 全

CTFshow JWT web345 先看题目&#xff0c;提示admin。 抓个包看看看。 好吧我不装了&#xff0c;其实我知道是JWT。直接开做。 在jwt.io转换后&#xff0c;发现不存在第三部分的签证&#xff0c;也就不需要知道密钥。 全称是JSON Web Token。 通俗地说&#xff0c;JWT的本质…

【知网检索】2023年金融,贸易和商业管理国际学术会议(FTBM2023)

随着经济全球化&#xff0c;贸易自由化的进程加快&#xff0c;我国经济对外开放程度不断加深&#xff0c;正在加快融入世界经济一体化当中。当今世界各国竞争过程中&#xff0c;金融、贸易以及商业形态已成为其关键与焦点竞争内容。 2023年金融、贸易和商业管理国际学术会议(F…

神经网络简单介绍

人工神经网络(artififial neural network) 简称神经网络&#xff0c;它是一种模仿生物神经网络结构和功能的非线性数学模型。 神经网络通过输入层接受原始特征信息&#xff0c;再通过隐藏层进行特征信息的加工和提取&#xff0c;最后通过输出层输出结果。 根据需要神经网络可以…

【1.1】Java微服务:初识微服务

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 微服务 ✨特色专栏&#xff1a; 知识分享 &#x…

使用Flutter的image_picker插件实现设备的相册的访问和拍照

文章目录 需求描述Flutter插件image_picker的介绍使用步骤1、添加依赖2、导入 例子完整的代码效果 总结 需求描述 在应用开发时&#xff0c;我们有很多场景要使用到更换图片的功能&#xff0c;即将原本的图像替换设置成其他的图像&#xff0c;从设备的相册或相机中选择图片或拍…