前一篇文章能够了解一下css
那么,此次主要功能就是web
直接上代码吧:canvas
# -*- coding:utf-8 -*- from selenium import webdriver import time import os from email.mime.text import MIMEText import smtplib # by 留歌36 #注意配置你的原始邮箱(发送邮件的邮箱) account = "###" password = "###" #注意配置你的接收邮箱 to = "###" #注意配置你女神的邮箱 qq="###" #使用Selenium的webdriver实例化一个浏览器对象,在这里使用Phantomjs driver = webdriver.PhantomJS(executable_path=r"F:\\phantomjs.exe") # 登陆QQ空间 def get_shuoshuo(qq): try: #注意配置你的女神的QQ号码http://user.qzone.qq.com/{你的女神的qq号码}/311'.format(qq) driver.get('http://user.qzone.qq.com/你的女神的qq号码/311'.format(qq)) time.sleep(5) driver.find_element_by_id('login_div') except: print("#####,没有找到login_div,说明您在线########") sea() time.sleep(10) #注意配置你女神的qq号码 get_shuoshuo('###') else: print("#####,找到login_div,说明您没有登录,如今开始登录########") # 若是页面存在登陆的DIV,则模拟登陆 driver.switch_to.frame('login_frame') driver.find_element_by_id('switcher_plogin').click() driver.find_element_by_id('u').clear() # 选择用户名框 #注意配置你的qq帐号 driver.find_element_by_id('u').send_keys('###') driver.find_element_by_id('p').clear() #注意配置你的qq密码 driver.find_element_by_id('p').send_keys('###') driver.find_element_by_id('login_button').click() time.sleep(3) print("#####登录成功########") #注意配置你女神的qq帐号 get_shuoshuo('###') #判断好友空间是否设置了权限,经过判断是否存在元素ID:QM_OwnerInfo_Icon driver.implicitly_wait(3) def sea(): try: driver.find_element_by_id('QM_OwnerInfo_Icon') b = True except: b = False #若是有权限可以访问到说说页面,那么定位元素和数据,并解析 if b == True: driver.switch_to.frame('app_canvas_frame') content = driver.find_elements_by_css_selector('.content') stime = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail') btns = driver.find_elements_by_css_selector('.qz_like_btn.c_tx.mr8') shuoshuo = content[0].text shijian= stime[0].text context = '说说内容为:'+ shuoshuo # context = '说说内容为:' + shuoshuo + " " + '发表时间是:' + shijian cun = ''.join(context) if toCheck(cun): # 调用点赞的函数 print("##########准备点赞##########") dian(btns) print("##########点赞完成##########") # 调用发送邮件的函数 print("##########准备发送邮件##########") send(to, "女神空间更新啦~~", context) print("##########发送邮件完成##########") print("##########准备保存说说##########") toSave(cun) print("##########保存说说完成##########") else: print('pass,尚未更新新的说说') def dian(btns): n = 0; for btn in btns: try: if btn.is_displayed() == True: if btn.text.find(u"赞") == 0: btn.click() n += 1 print ("点赞", n) except: print("已经点赞过了第一条说说") pass def send(to, title, content): msg = MIMEText(content) msg['Content-Type'] = 'text/plain; charset="utf-8"' msg['Subject'] = title msg['From'] = account msg['To'] = to try: smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(account, password) smtp.sendmail(account, to, msg.as_string()) smtp.close() except Exception as e : print (str(e)) def toCheck(data): if not os.path.exists('lhshuoshuo.txt'): return True else: f = open('lhshuoshuo.txt','r') existshuoshuo= f.readlines(); if data + '\n' in existshuoshuo: return False else: return True def toSave(text): f = open('lhshuoshuo.txt' , mode='a') f.write(text+ '\n') f.close() #让代码在服务器上一直跑着 while True: get_shuoshuo(qq)
仍是那样,若是你有什么好的建议能够留言呢
有什么问题也能够留言,我会尽可能第一时间回复你的浏览器