python3删除sina微博

来源:互联网 发布:淘宝闲鱼小二介入草率 编辑:程序博客网 时间:2024/05/24 05:42

微博上水文太多了,偶然得知python可以模拟登录微博并删除相关博文。在上网找到了两篇博文,但是目前还是调试失败。

目前代码有两个问题:无法获取并输入验证码,导致概率性登录失败;无法获取删除选项。



现贴出代码,望熟悉网页的大牛指点迷津。

参考博文:

http://blog.csdn.net/mypc2010/article/details/72934092
http://blog.csdn.net/nnnnnnnnnnnny/article/details/53999457

#!/usr/bin/env python3.4.3#coding:utf-8  #form http://blog.csdn.net/mypc2010/article/details/72934092 at 2017-08-19  from selenium import webdriver  import selenium.webdriver.support.ui as ui  from selenium.webdriver.common.keys import Keys  from selenium.webdriver import ActionChains  import time  #ffbrowser = webdriver.Chrome()ffbrowser = webdriver.Firefox()wait = ui.WebDriverWait(ffbrowser,3)def LoginWeibo(username,password,url):#验证码输入未完成    #print(username, password)    try:          ffbrowser.get(url)#读取session中数据        euser=ffbrowser.find_element_by_css_selector("div.input_wrap>input")        '''         euser=ffbrowser.find_element_by_id("loginname").send_keys(username)        if not euser:            print("euser is null")        euser=ffbrowser.find_element_by_name("username").send_keys(username)        if not euser:            print("euser is null")        euser=ffbrowser.find_element_by_class_name("W_input").send_keys(username)        '''        clr_user=ffbrowser.find_element_by_css_selector("div.input_wrap")          clr_user.click()#避免user含有提示信息         #print(ffbrowser)        if not euser:            print("euser is null")        else:            euser.send_keys(Keys.ENTER)              euser.send_keys(username)           epwd=ffbrowser.find_element_by_css_selector("[name='password']")        if not epwd:            print("epwd is null")        else:            epwd.send_keys(Keys.ENTER)              epwd.send_keys(password)            # 为防止报:Firefox 中的不安全密码警示这个错误,因此点击下密码框附件的区域          eunsafe=ffbrowser.find_element_by_css_selector("[class='info_list auto_login clearfix']")          eunsafe.click()          #点击登录按钮        '''        esubmit=ffbrowser.find_element_by_xpath("//a[@action-type='btn_submit']")          esubmit.click()          time.sleep(6)          eweibo=ffbrowser.find_element_by_css_selector("li>a[bpfilter='page_frame']")          eweibo.click()        '''        ffbrowser.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a').click()        time.sleep(3)      except Exception as e:        print(e)        return False    finally:        return True        pass  def DeleteWeibo():      try:          time.sleep(6)          elists=ffbrowser.find_elements_by_css_selector(".W_ficon.ficon_arrow_down.S_ficon")          for e in elists[1:]:              e.click()              time.sleep(1)              ees=ffbrowser.find_elements_by_css_selector(".screen_box>.layer_menu_list>ul>li[2]>a")            #Message: Given css selector expression ".screen_box>.layer_menu_list>ul>li[2]>a" is invalid:             #SyntaxError: '.screen_box>.layer_menu_list>ul>li[2]>a' is not a valid selector                        #ees=ffbrowser.find_element_by_xpath(".screen_box>.layer_menu_list>ul>li[2]>a")              print(ees[0].text)              ees[0].click()              time.sleep(1)              eenter=ffbrowser.find_element_by_css_selector(".W_btn_a>span")              eenter.click()              time.sleep(1)            '''            try:                  time.sleep(1)                  eclose=ffbrowser.find_element_by_css_selector(".W_ficon.ficon_close.S_ficon")                  eclose.click()                  time.sleep(2)            except:                  pass              '''      except Exception as e:          print(e)        return False    finally:          pass        return Truedef QuitWeibo():    ffbrowser.quit()    def LoginWeibo_Echo(username, password, url):    ffbrowser.get(url)#读取session中数据    #sign in the username     uid_xpath='//*[@id="loginname"]'    try:        browser.find_element_by_xpath('//*[@id="loginname"]').send_keys(username)        print('user success!')    except:        print('user error!')    time.sleep(1)    #sign in the pasword    pwd_xpath='//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input'    try:        browser.find_element_by_xpath(pwd_xpath).send_keys(password)        print('pwd success!')    except:        print('pwd error!')    time.sleep(1)    #click to login    click_xpath='//*[@id="pl_login_form"]/div/div[3]/div[6]/a'    try:        browser.find_element_by_xpath(click_xpath).click()        print('click success!')    except:        print('click error!')    time.sleep(30)if __name__ == '__main__':    your_usr=""#微博账户    your_pwd=""#微博密码    your_url="https://weibo.com/login.php"      print("开始登录微博,稍等")      flag=LoginWeibo(your_usr,your_pwd,your_url)    #flag=LoginWeibo_Echo(your_usr, your_pwd, your_url)    if flag:        print("登录成功")    else:        print("failed")        #QuitWeibo()        i=1      while flag:          print("开始第"+str(i)+"轮删除")          time.sleep(6)          flag=DeleteWeibo()          i+=1    if not flag:        print("err")        QuitWeibo()

2017-08-26

附上调试成功视频:http://www.iqiyi.com/w_19rvjl72nl.html