代码如下:

# -*- encoding: utf-8 -*-
import sys
from lxml import etree
from requests import get
from PyQt5 import QtCore, QtGui, QtWidgetsHEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}class Ui_WinMain(object):def __init__(self):self.all_url = {'微博热搜...': 'https://tophub.today/n/KqndgxeLl9','抖音热搜...': 'https://tophub.today/n/K7GdaMgdQy','百度实时热点...': 'https://tophub.today/n/Jb0vmloB1G','知乎热榜...': 'https://tophub.today/n/mproPpoq6O','虎嗅热文...': 'https://tophub.today/n/5VaobgvAj1','哔哩哔哩全站排行...': 'https://tophub.today/n/74KvxwokxM','豆瓣新片...': 'https://tophub.today/n/mDOvnyBoEB'}def spider(self, hot_url):self.textBrowser.clear()response = get(url=hot_url, headers=HEADERS)html = etree.HTML(response.content.decode('utf-8'))for oes_title in range(1, 11):try:title = html.xpath(f'//*[@id="page"]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr[{oes_title}]/td[2]/a//text()')[0]hot_index = html.xpath(f'//*[@id="page"]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr[{oes_title}]/td[3]//text()')[0]short_title_url = html.xpath(f'//*[@id="page"]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr[{oes_title}]/td[2]/a//@href')[0]title_url = 'https://tophub.today' + short_title_urlprint(f' {hot_index} | {title} {title_url}')mt_txt = f' {hot_index} | {title} \n'self.textBrowser.append(mt_txt)except Exception as e:print(f'出现异常:{e}')def setupUi(self, WinMain):WinMain.setObjectName("WinMain")WinMain.setWindowModality(QtCore.Qt.WindowModal)WinMain.setEnabled(True)WinMain.resize(660, 700)sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(WinMain.sizePolicy().hasHeightForWidth())WinMain.setSizePolicy(sizePolicy)WinMain.setMaximumSize(QtCore.QSize(660, 700))palette = QtGui.QPalette()brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(255, 170, 127))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(255, 170, 127))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)brush = QtGui.QBrush(QtGui.QColor(255, 170, 127))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)brush = QtGui.QBrush(QtGui.QColor(255, 170, 127))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)WinMain.setPalette(palette)font = QtGui.QFont()font.setPointSize(16)WinMain.setFont(font)WinMain.setLayoutDirection(QtCore.Qt.LeftToRight)self.textBrowser = QtWidgets.QTextBrowser(WinMain)self.textBrowser.setEnabled(True)self.textBrowser.setGeometry(QtCore.QRect(10, 60, 641, 631))self.textBrowser.setMaximumSize(QtCore.QSize(660, 666))font = QtGui.QFont()font.setFamily("华文中宋")font.setPointSize(18)font.setBold(False)font.setWeight(50)self.textBrowser.setFont(font)self.textBrowser.setLayoutDirection(QtCore.Qt.LeftToRight)self.textBrowser.setAutoFillBackground(True)self.textBrowser.setFrameShape(QtWidgets.QFrame.NoFrame)self.textBrowser.setFrameShadow(QtWidgets.QFrame.Sunken)self.textBrowser.setTabStopWidth(200)self.textBrowser.setObjectName("textBrowser")self.comboBox = QtWidgets.QComboBox(WinMain)self.comboBox.setGeometry(QtCore.QRect(120, 10, 240, 40))self.comboBox.setMaximumSize(QtCore.QSize(320, 40))font = QtGui.QFont()font.setFamily("华文中宋")font.setPointSize(18)self.comboBox.setFont(font)self.comboBox.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))self.comboBox.setMouseTracking(False)self.comboBox.setFocusPolicy(QtCore.Qt.StrongFocus)self.comboBox.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)self.comboBox.setLayoutDirection(QtCore.Qt.LeftToRight)self.comboBox.setAutoFillBackground(False)self.comboBox.setEditable(False)self.comboBox.setMaxCount(20)self.comboBox.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)self.comboBox.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContentsOnFirstShow)self.comboBox.setDuplicatesEnabled(False)self.comboBox.setFrame(False)self.comboBox.setModelColumn(0)self.comboBox.setObjectName("comboBox")self.label = QtWidgets.QLabel(WinMain)self.label.setGeometry(QtCore.QRect(10, 10, 101, 41))font = QtGui.QFont()font.setFamily("楷体")font.setPointSize(20)font.setBold(True)font.setWeight(75)font.setStyleStrategy(QtGui.QFont.PreferAntialias)self.label.setFont(font)self.label.setObjectName("label")self.pushButton = QtWidgets.QPushButton(WinMain)self.pushButton.setGeometry(QtCore.QRect(490, 10, 110, 40))self.pushButton.setMinimumSize(QtCore.QSize(110, 0))self.pushButton.setMaximumSize(QtCore.QSize(110, 40))palette = QtGui.QPalette()brush = QtGui.QBrush(QtGui.QColor(255, 170, 0))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(85, 170, 0))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)brush = QtGui.QBrush(QtGui.QColor(255, 170, 0))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(85, 170, 0))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)brush = QtGui.QBrush(QtGui.QColor(255, 170, 0))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))brush.setStyle(QtCore.Qt.SolidPattern)palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)self.pushButton.setPalette(palette)font = QtGui.QFont()font.setFamily("Segoe Script")font.setPointSize(24)font.setItalic(False)font.setUnderline(False)self.pushButton.setFont(font)self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))self.pushButton.setFocusPolicy(QtCore.Qt.WheelFocus)self.pushButton.setAutoRepeat(False)self.pushButton.setAutoExclusive(False)self.pushButton.setAutoDefault(False)self.pushButton.setFlat(True)self.pushButton.setObjectName("pushButton")self.retranslateUi(WinMain)self.comboBox.setCurrentIndex(-1)QtCore.QMetaObject.connectSlotsByName(WinMain)def retranslateUi(self, WinMain):_translate = QtCore.QCoreApplication.translateWinMain.setWindowTitle(_translate("WinMain", "Today Hot"))self.textBrowser.setHtml(_translate("WinMain","<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n""<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n""p, li { white-space: pre-wrap; }\n""</style></head><body style=\" font-family:\'华文新魏\'; font-size:16pt; font-weight:400; font-style:normal;\">\n""<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'SimSun\';\"><br /></p></body></html>"))self.label.setText(_translate("WinMain", "获取源:"))self.pushButton.setText(_translate("WinMain", "→ 进入"))def main_posh(self):self.pushButton.clicked.connect(self.post_url)def add_url_box(self):for hot_url_ in self.all_url:self.comboBox.addItem(hot_url_)def post_url(self):hot_title = self.comboBox.currentText()title_url = self.all_url[hot_title]self.spider(hot_url=title_url)def open_html():app = QtWidgets.QApplication(sys.argv)WinMain = QtWidgets.QWidget()ui = Ui_WinMain()ui.setupUi(WinMain)ui.add_url_box()ui.main_posh()ui.post_url()WinMain.show()sys.exit(app.exec_())if __name__ == "__main__":open_html()

爬取热榜数据,通过Qt界面显示,代码可直接运行(python3经典编程案例)相关推荐

  1. Python爬取热搜数据之炫酷可视化

    可视化展示 看完记得点个赞哟 炫酷可视化音乐组合版来了! 项目介绍 背景 现阶段.抖音.快手.哗哩哗哩.微信公众号已经成为不少年轻人必备的"生活神器".在21世纪的今天,你又是如何 ...

  2. 爬取热榜2k图片,爬虫入门即可

    一:作品预览 二:图片示例 三:知己知彼(剖析网页并保存到本地) 1.我们的目标网址是一个非常好的2k图片网站:https://wallhaven.cc/ 2.我们的目标是它的热榜图片:## 3.点击 ...

  3. 关于Python爬取热搜的另一种方法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.BeautifulSoup是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 本文主要介绍使用Beaut ...

  4. 对爬虫爬取到的数据进行存储

    已写章节 第一章 网络爬虫入门 第二章 基本库的使用 第三章 解析库的使用 第四章 数据存储 第五章 动态网页的抓取 文章目录 已写章节 第四章 数据存储 4.1 文件存储 4.1.1 TXT文件存储 ...

  5. 以某乎为实战案例,教你用Python爬取手机App数据

    1 前言 最近爬取的数据都是网页端,今天来教大家如何爬取手机端app数据(本文以ios苹果手机为例,其实安卓跟ios差不多)! 本文将以『某乎』为实战案例,手把手教你从配置到代码一步一步的爬取App数 ...

  6. 教你用Python爬取手机App数据!居然有人说爬不了APP

    最近爬取的数据都是网页端,今天来教大家如何爬取手机端app数据(本文以ios苹果手机为例,其实安卓跟ios差不多)! 本文将以『某乎』为实战案例,手把手教你从配置到代码一步一步的爬取App数据! 2. ...

  7. 1行代码爬CSDN热榜,Python哈啤酒式写法

    橡皮擦,一个逗趣的互联网高级网虫 项目背景 群友:擦姐,CSDN 热榜数据最少能用几行代码爬取? 擦姐:估计 10 行吧. 群友:oh baby,show me your code! 项目的需求就是这 ...

  8. 用 Python 爬取 4332 条数据,揭秘甜咸肉粽的江湖!

    作者 | 朱小五 责编 | 屠敏 来源 | 凹凸数据 端午节快要到了,甜咸粽子之争也快要拉开帷幕. 本文准备用Python爬取淘宝上的粽子数据并进行分析,看看有什么发现. 注:本文仅用于学习交流,禁止 ...

  9. python爬取去哪网数据_用户观点:企查查数据爬取技术与Python 爬取企查查数据...

    主体数据来源是全国工商信用网但是每个省的工商系统都不同,要针对每个省的工商系统单独写爬虫每个省的验证码也不同,也要单独做.企查查的原理不是主动爬去数据,而是有人查询该企业时,如果自己的数据库没有该企业 ...

最新文章

  1. 杠上Spark、Flink?Kafka为何转型流数据平台
  2. Java中使用递归算法实现子级架构的查询
  3. 【解题报告】Leecode 643. 子数组最大平均数 I——Leecode 刷题系列
  4. idea集成Activiti Designer插件
  5. php实现小说字典功能_PHP实现生成数据字典功能示例
  6. 你应该学习的 20 个 Python 代码段
  7. 通用模块 -- Dubbo 用户模块
  8. linux 退出java,linux kill命令下如何优雅的退出java程序
  9. TextView属性总结,简单的控件也可以很复杂
  10. C#百度OCR本地图片识别文字
  11. pdf 转图片 php,php如何实现pdf转换成图片
  12. [干货分享]硬件测试快速入门你必须了解的知识!
  13. OSChina 周二乱弹 —— 掏心掏肺又掏钱,最终娶了个潘金莲
  14. 有哪些不错的家装风格?极家整装怎么样
  15. CORBA协议相关的概念
  16. 博客项目学习笔记十二:登录注册功能(登录)
  17. Qt纯代码实现菜单栏、工具栏、状态栏
  18. Robomaster:大风车识别可视化(记录一下)
  19. U3D-3D MAX Biped导出.fbx到Unity的Humanoid的骨架不匹配(Disable Triangle Pelvis, Enable Triangle Neck)
  20. 苹果a10处理器_苹果“芯”基建简史:自己掌握不了核心技术 乔布斯也得干着急...

热门文章

  1. 设计测试用例的万能公式 + 6大具体方法 = 面试就像聊天?
  2. 自定义的毛玻璃效果,高斯模糊
  3. HHUOJ 1887 班级聚会上的游戏
  4. yahoo雅虎邮箱开通直邮(pop)功能
  5. 汇承金融科技:开创多渠道资产与资金撮合融资服务模式
  6. 苹果人机交互指南_苹果人机界面设计指南的10个见解
  7. 如何在 3dMax 中制作游戏中的战斧模型?
  8. 【跟我一起学Unity3D】做一个2D的90坦克大战之地图编辑器
  9. csdn没积分如何获取
  10. java.net.SocketException和错误:org.apache.ftpserver.FtpServerConfigurationException