目录
一、项目介绍
项目主要通过Python爬虫技术,结合数据库存储和数据分析技术,建立一个自动化爬取并存储专利信息的系统。使用Selenium框架构建,全程自动化进行数据抓取,数据库选择MySQL以及Excel文件进行存储和管理。不限制浏览器使用,Chrome以及Edge浏览器下载相应驱动都可以完美运行,可以输入爬取关键词以及爬取的页数,对于大量数据的爬取可以及时抛出错误日志不会阻碍程序的正常线性运行,同时也不会影响数据的存储。
二、主要技术特征
- 自动化技术:使用Selenium框架,能够自动高效、稳定地爬取大量专利数据,全程实现自动化操作(包括登陆验证以及自动翻页)。
- 数据存储:使用MySQL数据库,能够对爬取的数据进行有效管理和快速检索。
- 前端展示:采用tkinter库,提供用户友好的界面,便于用户进行数据查询和分析,添加有益于软件运行进度可视化的进度条。
部分GUI代码如下所示:
def create_gui():
root = Tk()
root.title("专利信息爬取")
# 设置窗口图标
root.iconphoto(False, PhotoImage(file='icon.png'))
# 窗口尺寸
window_width = 400
window_height = 200
# 获取屏幕尺寸
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 计算窗口居中位置
position_top = int(screen_height / 2 - window_height / 2)
position_right = int(screen_width / 2 - window_width / 2)
# 设置窗口大小和位置
root.geometry(f"{window_width}x{window_height}+{position_right}+{position_top}")
# 设置主题
style = Style()
style.theme_use('clam')
Label(root, text="请输入关键词:").grid(row=0, column=0, padx=10, pady=10)
keyword_entry = Entry(root, width=30)
keyword_entry.grid(row=0, column=1, padx=10, pady=10)
Label(root, text="请输入爬取页数:").grid(row=1, column=0, padx=10, pady=10)
pages_entry = Entry(root, width=30)
pages_entry.grid(row=1, column=1, padx=10, pady=10)
def start_crawling():
keyword = keyword_entry.get()
num_pages = int(pages_entry.get())
root.withdraw() # 隐藏主窗口
running.set() # 启动爬取标志
threading.Thread(target=crawl_data, args=(keyword, num_pages, root)).start()
def cancel():
running.clear() # 停止爬取
root.destroy()
sys.exit() # 退出程序
# 关闭主窗口时停止爬取
def on_closing():
running.clear()
root.destroy()
sys.exit() # 退出程序
root.protocol("WM_DELETE_WINDOW", on_closing)
Button(root, text="确定", command=start_crawling).grid(row=2, column=0, padx=10, pady=10)
Button(root, text="取消", command=cancel).grid(row=2, column=1, padx=10, pady=10)
root.mainloop()
三、成果演示
该代码创建了一个图形用户界面(GUI)应用程序,允许用户输入所需要爬取的专利名称以及需要爬取的页数。用户可以通过爬虫程序爬取所需的内容和数据,通过观察进度条,时刻关注爬取的进度。用户还可以查看储存到数据库和Excel文件的文件,方便后续的查找和数据的分析。整个界面布局合理,功能齐全,提供了良好的用户体验。
图3.1
爬取过程如图3.2、3.3所示
图3.2
图3.3
爬取结束提示如图3.4所示
图3.4
图3.5
图3.6
数据库存储如图3.7所示
图3.7
四、结论
本次专利信息爬取项目顺利完成,取得了预期的成果。项目采用各类技术功能,成功开发了一套自动化专利数据爬取系统,验证了这些技术在专利信息采集中的可行性和有效性。系统能够稳定、高效地爬取和存储大量专利数据,并具备一定的扩展性,适应不同规模的爬取任务需求。通过图形用户界面,用户可以方便地输入关键词和爬取页数,并实时查看爬取进度和结果,提升了系统的易用性和用户体验。
数据处理与存储方面,系统采用MySQL数据库,确保数据的完整性和安全性,并通过Excel文件导出功能,方便用户对数据进行进一步分析和处理。项目成果已具备实际应用价值,可用于专利分析、技术情报收集等多个领域,为相关研究和决策提供数据支持。
同时,项目也发现了在处理大规模数据时可能存在的性能瓶颈。未来可以通过优化代码、引入分布式爬虫等方式提升系统性能,并增强数据清洗和处理功能,以提高数据质量和应用效果。总体而言,本项目为专利数据的自动化采集和管理提供了一种高效、可靠的解决方案。(本项目拥有完整的开发文档,用于小型课设以及课后作业)