爬汽车之家特斯拉

pycharm qt5环境
没有连接数据库,就本地设置账户密码,单是尝试

`# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'tnl.ui'
#
# Created by: PyQt5 UI code generator 5.11.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import time
import urllib.request
from bs4 import BeautifulSoup
import os
from PIL import Image

class ReTbmm():
    def Retbmm(self):
        start = time.time()
        self.cdir = os.getcwd()
        # 网址https://www.autohome.com.cn
        # 车身外观
        url1 ='https://car.autohome.com.cn/pic/series/2664-1.html#pvareaid=2042220'
        # 中控方向盘
        url2='https://car.autohome.com.cn/pic/series/2664-10.html#pvareaid=2042220'
        # 车厢座椅
        url3 = 'https://car.autohome.com.cn/pic/series/2664-3.html#pvareaid=2042220'
        # 其他细节
        url4 = 'https://car.autohome.com.cn/pic/series/2664-12.html#pvareaid=2042220'
        self.getImag('车身外观',url1)
        self.getImag('中控方向盘', url2)
        self.getImag('车厢座椅', url3)
        self.getImag('其他细节', url4)
        end=time.time()
        print('run time:'+str(end -start))

    def getImag(self,name,urls):
        user_agent='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'
        headers={'User-Agent':user_agent}
        request= urllib.request.Request(urls,headers=headers)
        response =urllib.request.urlopen(request)
        bsObj = BeautifulSoup(response,'html.parser')
        t1 =bsObj.find_all('img')
        for t2 in t1:
            t3 =t2.get('src')
            print(t3)
        path = self.cdir +'/mrsoft/'+str(name)
        if not os.path.exists(path):
            os.makedirs(path)
        n =0
        for img in t1:
            n=n+1
            link =img.get('src')
            if link:
                s ='https:'+str(link)
                i = link[link.rfind('.'):]
                try:
                    request=urllib.request.Request(s)
                    response =urllib.request.urlopen(request)
                    imgData=response.read()
                    pathfile =path+r'/'+str(n)+i
                    with open( pathfile,'wb') as f:
                        f.write(imgData)
                        f.close()
                        print('下载完成'+n)
                except:
                    print('sorry')

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(1300, 900)
        self.scrollArea = QtWidgets.QScrollArea(Form)
        self.scrollArea.setGeometry(QtCore.QRect(20, 70, 181, 800))
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName("scrollArea")
        self.scrollAreaWidgetContents = QtWidgets.QWidget()
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 179, 800))
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
        self.treeView = QTreeWidget(self.scrollAreaWidgetContents)
        self.treeView.setGeometry(QtCore.QRect(0, 0, 181, 761))
        self.treeView.setObjectName("treeView")
        self.treeView.setHeaderLabel('爬出的结果')
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        self.verticalLayout = QtWidgets.QVBoxLayout(Form)
        self.verticalLayout.setObjectName("verticalLayout")
        self.scrollArea_2 = QtWidgets.QScrollArea(Form)
        self.scrollArea_2.setGeometry(QtCore.QRect(200, 70, 1000, 800))
        self.scrollArea_2.setWidgetResizable(True)
        self.scrollArea_2.setObjectName("scrollArea_2")
        self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
        self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
        self.gridLayout = QtWidgets.QGridLayout(self.scrollAreaWidgetContents_2)
        self.gridLayout.setContentsMargins(5, 5, 5, 5)
        self.gridLayout.setObjectName("gridLayout")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(20, 20, 161, 41))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "爬虫"))
        self.pushButton.setText(_translate("Form", "特斯拉"))
        self.root = QTreeWidgetItem(self.treeView)
        self.root.setText(0,'model x')
        self.pushButton.clicked.connect(self.btnstate)

    def btnstate(self):
        ui =ReTbmm()
        ui.Retbmm()
        self.path =cdir +'/mrsoft'
        dirs =os.listdir(self.path)
        for dir in dirs:
            QTreeWidgetItem(self.root).setText(0,dir)
        self.treeView.clicked.connect(self.onTreeclicked)
    def onTreeclicked(self):
        items =self.treeView.currentItem()
        if items.text(0)=='model x':
            self.root.takeChild()
            dirs = os.listdir(self.path)
            for dir in dirs:
                QTreeWidgetItem(self.root).setText(0, dir)
            self.treeView.clicked.connect(self.onTreeclicked)
        else:
            while self.gridLayout.count():
                item =self.gridLayout.takeAt(0)
                widget=item.widget()
                widget.deleteLater()
            filenames=[]
            for filename in os.listdir(cdir+'/mrsoft/'+items.text(0)):
                filenames.append(filename)
            i=-1
            for n in range(len(filenames)):
                x = n%3
                if(x ==0 ):
                    i +=1
                self.widget=QWidget()
                self.widget.setGeometry(QtCore.QRect(110,40,350,300))
                self.widget.setObjectName('widget'+str(n))
                self.label=QLabel(self.widget)
                self.label.setGeometry(QtCore.QRect(0, 0, 350, 300))
                self.label.setPixmap(QPixmap(self.path+'/'+items.text(0)+'/'+filenames[n]))
                self.label.setScaledContents(True)
                self.label.setObjectName('label'+str(n))

                self.commandLinkButton = QCommandLinkButton(self.widget)
                self.commandLinkButton.setGeometry(QtCore.QRect(0, 0, 111, 41))
                self.commandLinkButton.setText(filenames[n])
                self.commandLinkButton.setObjectName('commandLinkButton'+str(n))
                self.commandLinkButton.clicked.connect(lambda : self.wichbtn(self.path+'/'+items.text(0)+'/'))
                self.gridLayout.addWidget(self.widget,i,x)
            self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
            self.verticalLayout.addWidget(self.scrollArea_2)
            self.scrollAreaWidgetContents_2.setMaximumWidth(800)
            self.scrollAreaWidgetContents_2.setMinimumHeight(i*300)
        pass
    def wichbtn(self,tppath):
        sender = self.gridLayout.sender()
        img = Image.open(tppath +sender.text())
        img.show()
class FirstWindow(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(249, 212)
        self.widget = QtWidgets.QWidget(Form)
        self.widget.setGeometry(QtCore.QRect(40, 30, 181, 151))
        self.widget.setObjectName("widget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label = QtWidgets.QLabel(self.widget)
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.lineEdit = QtWidgets.QLineEdit(self.widget)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout.addWidget(self.lineEdit)
        self.label_2 = QtWidgets.QLabel(self.widget)
        self.label_2.setObjectName("label_2")
        self.verticalLayout.addWidget(self.label_2)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.widget)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.verticalLayout.addWidget(self.lineEdit_2)
        self.pushButton = QtWidgets.QPushButton(self.widget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.pushButton_2 = QtWidgets.QPushButton(self.widget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.verticalLayout.addWidget(self.pushButton_2)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "登录"))
        self.label.setText(_translate("Form", "用户名(leenry)"))
        self.label_2.setText(_translate("Form", "密码(123456)"))
        self.pushButton.setText(_translate("Form", "登录"))
        self.pushButton_2.setText(_translate("Form", "退出"))
#       登录
        self.pushButton.clicked.connect(self.onclick)
        # 退出
        self.pushButton_2.clicked.connect(quit)

    def onclick(self):
        if self.lineEdit.text()=='leenry':
             if self.lineEdit_2.text()=='123456':
                 MainWindow1.close()
                 MainWindow.show()
             else:
                 self.lineEdit_2.setText('密码错误请重新输入')
        else:
            self.lineEdit.setText('用户名错误请重新输入')
if __name__ =='__main__':
    App =QApplication(sys.argv)
    MainWindow1 = QtWidgets.QMainWindow()
    cdir = os.getcwd()
    ex = FirstWindow()
    ex.setupUi(MainWindow1)
    MainWindow1.show()
    MainWindow =QtWidgets.QMainWindow()
    ui= Ui_Form()
    ui.setupUi(MainWindow)
    sys.exit(App.exec_())`
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值