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

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

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

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

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

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

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

 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,输出信息过快导致程序崩溃。二是输出信息后,再做一个定位光标到文本最底,同样的因为输出信息太多,显示速度过快,导致崩溃。

python程序爬虫总是崩溃的更多相关文章

  1. Python 程序报错崩溃后,如何倒回到崩溃的位置?

    假设我们有一段程序,从 Redis 中读取数据,解析以后提取出里面的 name 字段: import json import redis client = redis.Redis() def read ...

  2. Ubuntu下配置python完成爬虫任务(笔记一)

    Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...

  3. Python简单爬虫入门二

    接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...

  4. [Python] 网络爬虫和正则表达式学习总结

    以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset.beachmark等等.但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的.最近在国内一家互联网公司实习, ...

  5. python简易爬虫来实现自动图片下载

    菜鸟新人刚刚入住博客园,先发个之前写的简易爬虫的实现吧,水平有限请轻喷. 估计利用python实现爬虫的程序网上已经有太多了,不过新人用来练手学习python确实是个不错的选择.本人借鉴网上的部分实现 ...

  6. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  7. Python分布式爬虫原理

    转载 permike 原文 Python分布式爬虫原理 首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的. (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作 ...

  8. Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)

    原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...

  9. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

随机推荐

  1. 如何将web项目部署到weblogic

    在Eclipse中配置weblogic11g服务器: 下载并安装Eclipse:www.eclipse.org 下载并安装Weblogic Server Plugin for Eclipse:http ...

  2. OpenCV 4.0.1 找不到R.styleable解决

    OpenCV 4.0.1作为模块导入Android Studio会有找不到R.styleable的问题. 解决方法 1.导入模块前 将 opencv-4.0.1-android-sdk\OpenCV- ...

  3. Javascript数组系列一之栈与队列

    所谓数组(英语:Array),是有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名. 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量. ---百度百科 ...

  4. 对display主要属性的探究,以及vertical-aligin

    display 首先要简单说明一下display的主要3个主要属性,分别为block,inline-block,inline,这里只提及主要,关于其他的inherit,none等可以自行了解 inli ...

  5. 关于C#List中FindAll用法的一些简单示例

    using System; using System.Collections.Generic; public partial class List : System.Web.UI.Page { pro ...

  6. Linux进程调度器的设计--Linux进程的管理与调度(十七)

    1 前景回顾 1.1 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为 ...

  7. UITableView的分割线长短的控制

    UITableView的默认的cell的分割线左边没有顶满,而右边却顶满了.这样显示很难看.我需要让其左右两边都是未顶满状态,距离是20像素 // code1 if ([self.tableView ...

  8. Lua保留指定小数位数

    默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位 print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一 ...

  9. Jmeter 登入、新增、查询、修改、删除,动态传参。

    1.设置HTTP Request Defaults    请求默认值,这样之后每次请求同一个域名端口的时候后都不用输入协议.域名.端口号. 2.输入[登入]的接口号. 3.设置HTTP header  ...

  10. 排序算法之折半插入排序的思想以及Java实现

    1 基本思想 折半插入排序(binary insertion sort)的基本原理与直接插入排序相同,不同之处在于,确定当前记录在前面有序子数组中的位置时,直接插入排序是采用顺序查找的方法,而折半插入 ...