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

网站更新维护 怎么做/百度统计网站

网站更新维护 怎么做,百度统计网站,wordpress开源吗,网络营销的四大要素电商平台数据抓包软件由三部分组成:前端GUI可视化界面后端连接数据库 1、GUI可视化界面: 结果展示: - 代码: def __init__(self):super().__init__()self.initUI()def initUI(self): # 设计界面self.setGeometry(300, 200, 128…

电商平台数据抓包软件由三部分组成:前端GUI可视化界面+后端连接+数据库

1、GUI可视化界面:

  • 结果展示:

在这里插入图片描述

- 代码:

  def __init__(self):super().__init__()self.initUI()def initUI(self):  # 设计界面self.setGeometry(300, 200, 1280, 350)  # 设置窗体尺寸palette = QPalette()palette.setBrush(QPalette.Background, QBrush(QPixmap("./0101.jpg")))self.setPalette(palette)self.setWindowTitle('电商收集平台')  # 命名窗体的标题QToolTip.setFont(QFont('SansSerif', 12))  # 设置控件提示信息的字体格式及大小self.btn = QPushButton('开始', self)  # 设计开始按钮self.btn.setToolTip('单击开始爬取')  # 设置按钮的提示信息self.btn.clicked.connect(self.doAction)  # 建立信号和槽的联系,将单击信号与下面的doacion进行链接#self.pbar = QProgressBar(self)  # 设计一个进度条self.textEdit = QTextEdit(self)  # 设计一个文本输出框self.textEdit.setPlaceholderText("帮助文档:\n1.右侧输入商品名称\n2.单击开始进行下载\n3.单击停止结束下载")self.textEdit.setStyleSheet("color:black")self.textEdit.resize(1150, 200)  # 设置文本输出框大小self.lineEdit1 = QLineEdit(self)  # 设计输入框self.lineEdit1.setPlaceholderText("输入搜索关键字")self.lineEdit2 = QLineEdit(self)  # 设计输入框self.lineEdit2.setPlaceholderText("输入爬取数据量")self.groupBox = QGroupBox(self)  # 设置QT容器self.groupBox.move(1130, 125)  # 移动容器的位置self.groupBox.resize(120, 190)  # 设置容器的尺寸self.groupBox.setTitle('菜单栏')  # 设置容器的标题self.groupBox.setStyleSheet("color:black")self.groupBox.setFont(QFont("微软雅黑", 14, QFont.Bold))self.groupBox.setAlignment(4)  # 4为ALignHCenter为居中的意思layout = QVBoxLayout()  # 新建一个垂直布局layout.addWidget(self.lineEdit1)  # 往该布局中添加各种控件layout.addWidget(self.lineEdit2)  # 往该布局中添加各种控件layout.addWidget(self.btn)self.groupBox.setLayout(layout)  # 显示该布局self.groupBox2 = QGroupBox(self)  # 设置QT容器2self.groupBox2.move(10, 10)self.groupBox2.resize(1110, 300)self.groupBox2.setTitle('程序可视化界面')self.groupBox2.setStyleSheet("color:white")self.groupBox2.setFont(QFont("微软雅黑",14, QFont.Bold))self.groupBox2.setAlignment(4)  # 4为ALignHCenter为居中的意思layout2 = QVBoxLayout()layout2.addWidget(self.textEdit)self.groupBox2.setLayout(layout2)self.groupBox5 = QGroupBox(self)  # 设置QT容器5self.groupBox5.setStyleSheet("border:none")  # 隐藏容器的边框self.groupBox5.move(1128, 8)self.groupBox5.resize(125, 120)self.lbl = QLabel(self)  # 新建一个控件来显示图片layout5 = QVBoxLayout()pixmap = QPixmap("./011.jpg")  # 按指定路径找到图片self.lbl.setPixmap(pixmap)  # 在label上显示图片self.lbl.setScaledContents(True)  # 让图片自适应label大小layout5.addWidget(self.lbl)self.groupBox5.setLayout(layout5)self.show()  # 显示主窗口def doAction(self):  # 主函数,用于下载数据goods = []name = self.lineEdit1.text()  # 获取输入的内容number = int(self.lineEdit2.text())  # 获取输入的内容QMessageBox.question(self, '提示',"单击yes爬取数据,爬取过程请耐心等待", QMessageBox.Yes, QMessageBox.Yes)  # 最后一个QMessageBox.No的意思是默认为notry:browser.get('https://www.jd.com/')input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#key')))submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#search > div > div.form > button > i')))input.send_keys(str(name))submit.click()goods = get_products()for good in goods:time.sleep(1)self.textEdit.append(str(good))QApplication.processEvents()  # 刷新窗口防止卡死except TimeoutError:print('error')for i in range(2, int(number/60)+3):goods = []QApplication.processEvents()  # 刷新窗口防止卡死time.sleep(random.randint(70, 80))goods = next_page(i)for good in goods:time.sleep(1)self.textEdit.append(str(good))QApplication.processEvents()  # 刷新窗口防止卡死self.textEdit.append('停止下载 ')browser.close()def closeEvent(self, event):  # 重写关闭事件reply = QMessageBox.question(self, '提示',  # 设计一个提示框"确定要退出搜索程序吗?", QMessageBox.Yes |QMessageBox.No, QMessageBox.No)  # 最后一个QMessageBox.No的意思是默认为noif reply == QMessageBox.Yes:event.accept()else:event.ignore()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

2、后台运行:

  • 结果展示:
    右侧输入搜索的商品,以及想要爬取的数据总量,也可输入商品的url:
    在这里插入图片描述
    后台运行,将登录模拟浏览器,搜索商品:
    在这里插入图片描述
    在这里插入图片描述
    将搜集的商品数据显示,并录入数据库中:
    在这里插入图片描述
    此为后端平台的爬取过程:❤❤❤
    在这里插入图片描述
  • 代码:
def next_page(page_number):try:submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#J_bottomPage > span.p-num > a.pn-next')))submit.click()Goods = get_products()return Goodsexcept TimeoutError:next_page(page_number)def get_products():Good = []wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#J_goodsList .gl-warp .gl-item')))html = browser.page_sourcedoc = pq(html)items = doc('#J_goodsList .gl-warp .gl-item').items()for item in items:product = {'name':item.find('.p-name').text(),'shop':item.find('.p-shop').text(),'price':item.find('.p-price').text(),'commit':item.find('.p-commit').text(),'self': item.find('.p-icons .goods-icons').text(),}print(product)Good.append(str(product))save_to_mongo(product)QApplication.processEvents()  # 刷新窗口防止卡死if stop == 1:breakreturn Good

3、数据库接口及管理:

  • 结果展示:
    在这里插入图片描述
  • 代码:
MONGO_URL = 'localhost'
MONGO_DB = 'jingdong'
MONGO_TABLE = 'product'SERVICE_ARGS = ['--load-images=false','--disk-cache=true']
def save_to_mongo(result):try:if db[MONGO_TABLE].insert(result):print('存储到MONGO_DB成功',result)except Exception:print('存储到MONGO_DB失败',result)

最新出炉的后台爬虫+可视化操作,有兴趣的请在下方留言交流~

http://www.jmfq.cn/news/5224627.html

相关文章:

  • php网站开发实例教程源代码/廊坊seo推广公司
  • 什么是网站可信认证/百度推广登录官网
  • wordpress attachment.php/郑州网站建设方案优化
  • 百度用户服务中心/郑州外语网站建站优化
  • 美食网站开发方案/最近一周的国内新闻
  • 做安卓icon图标包下载网站/如何能查到百度搜索排名
  • 做钢材的都用什么网站/沧州网站建设推广
  • 网站建设开淘宝直通车/公众号关键词排名优化
  • 简单网站html模板下载/外贸谷歌推广怎么样
  • 企业案例网站生成/长春网站开发
  • 龙岗网站制作公司/seo作弊
  • 全省政府网站建设培训会/女教师遭网课入侵直播
  • 企业网站建设合同书模板/平台接广告在哪里接的
  • php按步骤做网站/360摄像头海澳門地区限制解除
  • 建设网站主机免费版/友情链接官网
  • 免费b2b网站推广列表/seo与sem的关系
  • 高新网站建设/优搜云seo
  • 广州市黄埔区建设局网站/郑州seo排名扣费
  • 怎么做域名网站备案/seo站外推广
  • 搭建建立网站/淘宝运营
  • 成都网站建设 公司/明天上海封控16个区
  • 重庆短视频行业/seo在线优化网站
  • 南宁网站定制公司/seo优化工作内容做什么
  • 集群注册的公司可以做网站备案/qq营销软件
  • css制作网页/标题关键词优化技巧
  • 做简历最好的网站/营销策略是什么
  • 佛山网站建设怎么做/seo软文代写
  • 电子商务网站建设与管理期末试卷/网站推广方式
  • jquery 开发网站/西安最新消息今天
  • 上海公司网站建设服务/百度竞价排名的利与弊