👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
一、资源预览
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
二、功能设计
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
zhua取页面如下:
2.1.登录功能设计
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
登录界面的主要采用PyQT5来设计,QT5是通用的基于高性能的Qt的GUI控件集。能够跨平台运行在Linux、Window和Mac OS系统上。使用信号槽机制进行通信。对Qt库进行完全封装。可以使用成熟的IDE进行界面设计,并自动生成可执行的Python代码。提供一整套种类齐全的窗口控件。
控件代码如下所示:
def my_widget(self): self.title = QLabel('欢迎使用拍卖网爬虫工具') self.user_name = QLabel('用户名') self.pass_word = QLabel('密码') self.login_bt = QPushButton('登录') self.register_bt = QPushButton('注册') self.close_bt = QPushButton('退出') self.user_name_textbox = QLineEdit() self.pass_word_textbox = QLineEdit() self.choosemodel_combox = QComboBox(self)
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
将登录按钮连接到一个槽函数,以便在单击时检查用户名和密码的有效性。使用布局管理器(如QVBoxLayout和QHBoxLayout)对界面元素进行布局。首先将标签和文本框放入水平布局(QHBoxLayout),然后将这两个水平布局和按钮放入垂直布局(QVBoxLayout)。最后,将垂直布局设置为主窗口的布局。
def account_area(self): # 登录信息布局 group_box = QGroupBox('登录', self) flayout = QFormLayout(group_box) flayout.addRow(self.user_name, self.user_name_textbox) flayout.addRow(self.pass_word, self.pass_word_textbox) return group_box def button_area(self): # 按钮布局 group_box = QGroupBox('', self) hlayout = QHBoxLayout(group_box) hlayout.addWidget(self.login_bt) hlayout.addWidget(self.register_bt) hlayout.addWidget(self.close_bt) return group_box
在槽函数中编写验证用户名和密码的逻辑。涉及到数据库验证,调用数据库API进行比较。如果验证成功,则关闭登录窗口并打开应用程序的主界面。如果验证失败,则弹出一个错误消息框(QMessageBox)提示用户。,如果用户名或密码为空,会报错提示用户输入正确的账号信息;如果用户输入了错误的账号密码,也会报错提示用户。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
2.2. 注册功能设计
注册界面主要包含的内容是注册类型、用户名、密码、密码确认、电子邮箱,所有选项均为必填项。在注册界面的槽函数中编写验证表单的逻辑。检查以下内容:
1)账号是否满足非空要求,如果不满足会报错
2)密码是否符合要求(非空、长度限制、包含特殊字符等)
3)确认密码是否与密码相同
3)邮箱地址是否有效(可以使用正则表达式进行验证)
def judge_account_exist(self, account): if " " in self.register_name_edit.text(): QMessageBox.information(self, 'Error', "注册失败,名称不能含有空格!", QMessageBox.Yes) return False elif self.register_name_edit.text() in account: QMessageBox.information(self, 'Error', "注册失败,用户名已存在!", QMessageBox.Yes) return False else: QMessageBox.information(self, 'Congratulations', "恭喜,账号注册成功!", QMessageBox.Yes) return True
如果所有字段都通过验证,则执行下一步操作,例如将数据存储到数据库中。如果验证失败,则弹出一个错误消息框(QMessageBox)提示用户。
注册界面,对用户名进行了判断,如果用户名存在数据库中,会提示用户数据库中存在用户名,请重新注册账户;如果用户名为空,也会提示输入正确的用户名;用户名只可以使用字母、数字的形式进行注册,如果非法符号,会导致注册不成功,并报错提示用户。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
同时,加入了密码二次确认机制,如果两次密码不一致,会提示用户重新输入密码;密码不可为空,为空也会出现报错。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
2.3. 抓取功能设计
爬虫交互界面的是一个基于PyQt5的网络爬虫GUI应用程序,主要功能是从拍卖网站上抓取数据并将数据保存到CSV文件中。以下是代码的详细分析:
导入所需的库和模块,如qdarkstyle(用于美化界面),csv(用于操作CSV文件),qtawesome(用于图标)和PyQt5相关模块。
方法 | 说明 |
signal_post | signal_post方法用于设置信号槽连接。例如,将start_bt按钮的clicked信号连接到run_scraw方法,以启动爬虫。 |
show_image | 方法用于根据复选框的状态显示或隐藏图像保存路径相关控件。 |
image_save_path | 方法打开文件对话框,让用户选择图像保存文件夹,并将路径设置到image_save_line_edit文本框中。 |
run_scraw | 方法首先清空数据表格,然后根据用户选择的选项设置状态列表和数据表头。接下来,它创建并启动ScrawThread线程来执行实际的网络爬取任务。线程的信号将连接到get_post_slot和get_image_post_slot槽函数,用于接收爬取到的数据。 |
get_place_type_data_url | 方法根据用户在组合框中选择的地点、类型和价格生成目标URL。 |
get_image_post_slot | 方法在接收到ScrawThread线程发出的图像信号时,创建并启动ImageSaveThread线程来保存图像。 |
get_post_slot | 方法在接收到ScrawThread线程发出的数据信号时,将数据添加到数据表格中。 |
judge_save_image_path | 方法检查图像保存路径是否有效。 |
save_data_frame | 方法将数据表格中的内容保存到CSV文件。 |
clear_data_frame | 方法清空数据表格。 |
message_box | 方法用于弹出消息框,显示给定的标题、文本和按钮文本。 |
显示详细信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈
这个程序的主要逻辑在于通过ScrawThread线程执行网络爬取任务,并使用信号槽机制将爬取到的数据传递给主线程,以便显示在数据表格中。程序还提供了将数据保存到CSV文件和保存抓取到的图像的功能。
同时爬取的内容,也会保存到excel表格中
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 毕设二手房工具 ” 获取。👈👈👈