zoukankan      html  css  js  c++  java
  • python程序爬虫总是崩溃

     写的一个爬虫程序,主要用到以下库。但是伴随着代码增多,功能增多。经常性的程序崩溃现象,逐渐显现。

    pyqt5_5.8.2,requests.get,selenium+chorme,threading.Thread,queue.Queue

    多次完善代码与程序,甚至已经尝试了各种python版本,与pyqt5版本。甚至pyqt5-tools的版本也换了,都无法处理程序崩溃。

    关于访问系统的地方,都已经加了线程锁。

    程序崩溃的情况,基本上都会在程序运行一段很短的时间后就出现。

    根据程序多次崩溃的情况,无法总结出崩溃的特征。出现崩溃的情况毫无征兆,每一次都出现在程序流程的不同地方。

    目前可见的怀疑点在于pyuic转换ui文为py文件,生成的py文件总有一行代码

    1 QtCore.QMetaObject.connectSlotsByName(MainWindow)

    无法解析导致出错,把这行代码注释也是可以运行,经查网上的信息,说法甚少。

    只找到一处,说到这行代码是与程序ui界面刷新有关。

    总是出现程序崩溃,难以排查原因。 

    问题事件名称: APPCRASH
    应用程序名:	python.exe
    应用程序版本:	3.6.6150.1013
    应用程序时间戳:	5b330722
    故障模块名称:	Qt5Gui.dll
    故障模块版本:	5.8.0.0
    故障模块时间戳:	587fd80f
    异常代码:	c0000005
    异常偏移:	00000000000f3991
    OS 版本:	6.1.7601.2.1.0.256.1
    区域设置 ID:	2052
    其他信息 1:	b872
    其他信息 2:	b87237fef27100b1f99611e72e190746
    其他信息 3:	cddc
    其他信息 4:	cddc7f932bc69399719fb6c3bca599fa
    

    这样的出错信息,经查网上信息,说法倒是挺多。具体原因是可能是内存泄露。

    因为故障模块是Qt5Gui.dll,很有可能是pyqt5库方面的问题,联想到那一行无法解析的代码。有可能这个崩溃是因为那一行无法解析的代码造成的。

    _________________________________________________________________________________________________________________________

    多次测试,终于发现故障点所在。程序中设置了一个textBrower,用来实时显示信息。一是多线程运行程序时,有很多信息需要输出到tecxtBrower,输出信息过快导致程序崩溃。二是输出信息后,再做一个定位光标到文本最底,同样的因为输出信息太多,显示速度过快,导致崩溃。

  • 相关阅读:
    PythonStudy——socket 网络编程
    PythonStudy——异常处理
    PythonStudy——subprocess 模块
    PythonStudy——xlrd 与 xlwt 表格处理模块
    MySQLStudy——安装与环境部署
    Redo与undo在开发中的使用
    SQL语句的执行计划(oracle表的三种链接方式)
    SQLSERVER的兼容级别
    查看用户的SQL执行历史
    Spark是一种分布式的计算方案
  • 原文地址:https://www.cnblogs.com/zwgbk/p/10292888.html
Copyright © 2011-2022 走看看