python 360 社区 监控 爬虫 in not in 问题

2024-08-31 21:08

本文主要是介绍python 360 社区 监控 爬虫 in not in 问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

发生个特别奇怪的情况,最近老是收到重复邮件,检查爬虫里面有个地方竟然走了两个分支,
如果用in,元素存在的情况下,竟然会走到else里面,用notin,就不会,实在是太奇怪了,写简单的demo的时候不会出现这个情况,不知道是python的问题还是我的问题

#*-coding:utf-8-*-
import urllib2
import re
import smtplib
import time
from email.mime.text import MIMETextretries1=30
_to = "XXXXXXXXXXXXX@360.cn"class SendQqMail:def getqqmail(self, retries):_user = "XXXXXXXXXXXXXX@qq.com"_pwd = "XXXXXXXXXXXXXXXXXXX"msg = MIMEText(listitem1[74:-4])msg["Subject"] = listitem1[0:42]msg["From"] = _usermsg["To"] = _totry:time.sleep(30)s = smtplib.SMTP_SSL("smtp.qq.com", 465)s.login(_user, _pwd)s.sendmail(_user, _to, msg.as_string())s.quit()print "Send QQ Email Success!"except smtplib.SMTPException, e:print "retry.QQ mail.........,%s" % eif retries > 0:return self.getqqmail(retries - 1)else:print "Send QQ Email Falied,%s" % eclass Send163Mail:def get163mail(self, retries):_user = "python_smtp_test@163.com"_pwd = "zk199245qqq"msg = MIMEText(listitem1[74:-4])msg["Subject"] = listitem1[0:42]msg["From"] = _usermsg["To"] = _totry:time.sleep(30)s = smtplib.SMTP_SSL("smtp.163.com", 465)s.login(_user, _pwd)s.sendmail(_user, _to, msg.as_string())s.quit()print "Send 163 Email Success!"except smtplib.SMTPException, e:print "retry.163mail..........,%s" % eif retries > 0:return self.get163mail(retries - 1)else:print "Send 163 Email Falied,%s" % e#卫士板块
req1 = urllib2.Request("http://bbs.360.cn/forum-140-1.html")class openurlrequest:def tryopenurlrequest(self, req, retries):try:time.sleep(30)response = urllib2.urlopen(req)bufferread = response.read()except Exception, what:#print what, reqif retries > 0:return self.tryopenurlrequest(req, retries - 1)else:print 'open url request Failed', reqreturn bufferreadbuff = openurlrequest()
buffer = buff.tryopenurlrequest(req1, retries1)
getarticlelist = re.compile(r'http://bbs.360.cn/thread-.+-1-1.html" \s?target="_blank" class="s xst".*\s*</a>')
pagemsg = re.findall(getarticlelist,buffer)print ("卫士板块监控系统已启动,如果监控到新的信息将会自动发送到您的邮箱").decode("utf-8")
print 'ready variables of num: %s' %len(pagemsg)allurllist = []
for eveurllist in pagemsg:allurllist.append(eveurllist[0:42])
print len(allurllist)while True:time.sleep(30)buff1 = openurlrequest()buffer1 = buff.tryopenurlrequest(req1, retries1)getarticlelist1 = re.compile(r'http://bbs.360.cn/thread-.+-1-1.html" \s?target="_blank" class="s xst".*\s*</a>')pagemsg1 = re.findall(getarticlelist1,buffer1)for listitem1 in pagemsg1:#奇怪的地方就在这里,用in的时候取到的最后一条listitem1[0:42]在allurllist里面,应该不会走到else里面,但是测试的时候,会把两种情况都打印出来,而用not in就不会,这他妈的是因为啥啊if (listitem1[0:42] not in allurllist):allurllist.append(listitem1[0:42])try:qqsendmailer = SendQqMail()time.sleep(30)qqsendmailer.getqqmail(30)except:print "QQ mail try five times fail,change 163mail"neteasysendmailer = Send163Mail()time.sleep(30)neteasysendmailer.get163mail(30)else:pass

这篇关于python 360 社区 监控 爬虫 in not in 问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124997

相关文章

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat