当前位置: 首页 > news >正文

淮南做网站搜书网站 怎么做

淮南做网站,搜书网站 怎么做,合肥网络推广,wordpress地址站点地址概要应同学邀请#xff0c;演示如何使用 PyQt5 内嵌浏览器浏览网页#xff0c;并注入 Javascript 脚本实现自动化操作。下面测试的是一个廉价机票预订网站(http://www.flyscoot.com/)#xff0c;关键点如下使用 QWebEngineView 加载网页#xff0c;并显示进度。在默认配置(…概要应同学邀请演示如何使用 PyQt5 内嵌浏览器浏览网页并注入 Javascript 脚本实现自动化操作。下面测试的是一个廉价机票预订网站(http://www.flyscoot.com/)关键点如下使用 QWebEngineView 加载网页并显示进度。在默认配置(QWebEngineProfile)中植入 Javascript 内容这样脚本会在所有打开的网页中执行不论跳转到哪个网址。Javascript 脚本使用网址中的路径名判断当前网页位置从而决定执行哪种操作。python 代码示例#!/usr/bin/env python3# -*- coding: utf-8 -*-使用 PyQt5 内嵌浏览器浏览网页并注入 Javascript 脚本实现自动化操作。import osimport sysfrom datetime import datetimefrom PyQt5.QtWidgets import (QWidget, QApplication, QVBoxLayout, QHBoxLayout,QDesktopWidget, QTextEdit, QLabel, QLineEdit, QPushButton,QFileDialog, QProgressBar,)from PyQt5.QtCore import QUrl, pyqtSlotfrom PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile, QWebEngineScript, QWebEnginePageclass Browser(QWidget):def __init__(self):super().__init__()self.init_ui()# 脚本self.profile QWebEngineProfile.defaultProfile()self.script QWebEngineScript()self.prepare_script()def init_ui(self):self.webView QWebEngineView()self.logEdit QTextEdit()self.logEdit.setFixedHeight(100)self.addrEdit QLineEdit()self.addrEdit.returnPressed.connect(self.load_url)self.webView.urlChanged.connect(lambda i: self.addrEdit.setText(i.toDisplayString()))self.jsEdit QLineEdit()self.jsEdit.setText(inject.js)loadUrlBtn QPushButton(加载)loadUrlBtn.clicked.connect(self.load_url)chooseJsBtn QPushButton(选择脚本文件)chooseJsBtn.clicked.connect(self.choose_js_file)# 导航/工具top QWidget()top.setFixedHeight(80)topBox QVBoxLayout(top)topBox.setSpacing(0)topBox.setContentsMargins(5, 0, 0, 5)progBar QProgressBar()progBox QHBoxLayout()progBox.addWidget(progBar)topBox.addLayout(progBox)naviBox QHBoxLayout()naviBox.addWidget(QLabel(网址))naviBox.addWidget(self.addrEdit)naviBox.addWidget(loadUrlBtn)topBox.addLayout(naviBox)naviBox QHBoxLayout()naviBox.addWidget(QLabel(注入脚本文件))naviBox.addWidget(self.jsEdit)naviBox.addWidget(chooseJsBtn)topBox.addLayout(naviBox)self.webView.loadProgress.connect(progBar.setValue)# 主界面layout QVBoxLayout(self)layout.addWidget(self.webView)layout.addWidget(top)layout.addWidget(self.logEdit)self.show()self.resize(1024, 900)self.center()def center(self):qr self.frameGeometry()cp QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)self.move(qr.topLeft())pyqtSlot()def load_url(self):url self.addrEdit.text().strip()if not url.lower().startswith(http://) \and not url.lower().startswith(https://):url http://{}.format(url)self.load(url)pyqtSlot()def choose_js_file(self):f, _ QFileDialog.getOpenFileName(filterJavascript files(*.js))if os.path.isfile(f):self.jsEdit.setText(f)self.prepare_script()def prepare_script(self):path self.jsEdit.text().strip()if not os.path.isfile(path):self.log(invalid js path)returnself.profile.scripts().remove(self.script)with open(path, r) as f:self.script.setSourceCode(f.read())self.profile.scripts().insert(self.script)self.log(injected js ready)def log(self, msg, *args, **kwargs):m msg.format(*args, **kwargs)self.logEdit.append({} {}.format(datetime.now().strftime(%H:%M:%S), m))def load(self, url):self.log(floading {url})self.addrEdit.setText(url)self.webView.load(QUrl(url))if __name__ __main__:app QApplication(sys.argv)b Browser()b.load(http://www.flyscoot.com/)sys.exit(app.exec_())Javascript 脚本示例// 简单起见这里只演示部分页面脚本内容摘自 Heng丶原贴文。function handle(path) {// 首页if (path /zh) {document.getElementsByClassName(radio-inline)[1].click();document.getElementById(oneway_from).value广州 (CAN);document.getElementById(oneway_to).value新加坡 (SIN);document.getElementById(oneway_departuredate).value2018年9月10日;document.getElementsByClassName(btn--booking)[1].click();return;}// 选择航班if (path /Book/Flight) {document.getElementsByClassName(price--sale)[0].click();document.getElementsByClassName(heading-4)[0].click();document.getElementsByClassName(btn-submit)[0].click();return;}// 乘客信息if (path /BookFlight/Passengers) {document.getElementsByClassName(fname1)[0].value 匿名;}}let host document.location.hostname;if (host.endsWith(.flyscoot.com)) {handle(document.location.pathname);}总结以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作具有一定的参考学习价值谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
http://www.zqtcl.cn/news/782478/

相关文章:

  • 南京网站设计网站wordpress选择模板没
  • 河南省网站集约化建设国内房地产设计网站建设
  • 长治招聘网站建设电话销售精准客户资源
  • 灵璧有做公司网站的吗自定义wordpress
  • 创个网站怎么弄做国内第一游戏数据门户网站
  • 沈阳网站制作全过程小程序商城的好处
  • 如何建设vr网站长春建站网站模板
  • 做一个网站的费用wordpress mysql配置
  • 重庆专业的网站建设公司怎么套网站
  • 产品网站怎么做企业网站建设用什么
  • 怎样做网站公司大连市住建局官方网
  • 东莞市网站建设平台wordpress用户登录显示请求失败
  • 网站一键收录西宁网站建设西宁
  • 昆山网站h5制作开发地点
  • 承德网站建设设计手机建站服务
  • 成都网站建设思乐科技网站简单化
  • 东莞外贸公司网站制作微信文章链接wordpress
  • 剑灵网站模板效果图网站源码
  • 个人工作室网站源码带后台安徽服装网站建设
  • SEO案例网站建设公司好听的公司名字大全
  • 一些网站只能在微信打开怎么做的别人做的网站域名到期怎么办
  • 姑苏区做网站网站建设一条
  • 赣州人才网站wordpress论坛查看用户密码
  • asp.net 网站开发架构网站你懂我意思正能量不用下载视频
  • 沈阳网站设计推广诸暨网络推广
  • 福建网站开发公司电话成都丁香人才网官网专区
  • 做网站标题居中代码对网页设计作品的意见
  • 网站建设实训考试普洱网站搭建
  • 你认为视频网站如何做推广asp网站木马扫描
  • 学校门户网站什么意思c2c网站建设要多少钱