• 学习笔记20190309


    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.common.exceptions import NoSuchElementException
    import time
    ###################常量设置
    TIME_FOR_LOGIN=60###################预留n秒用于扫码登录 
    READING_STEP=10###################分10次读完一篇文章
    TIME_FOR_READING=18###################n秒阅读完一篇文章十分之一
    TIME_FOR_AJAX=10##########################预留三秒用于异步加载
    HOME_PAGE=''
    PAPER_COUNT=6##############文章数6
    VIDEO_COUNT=6#############视频数6
    TIME_FOR_VIDEO=300#30秒后开始计时
    TIME_FOR_NEWS=30
    
    #创建浏览器
    browser=webdriver.Chrome()
    ####################################阅读文章任务
    browser.get(HOME_PAGE)
    #等待手工扫码登录
    #time.sleep(TIME_FOR_LOGIN)
    for i in range(1,TIME_FOR_LOGIN+1):#
         print('已等待扫码:'+str(i)+'秒……')
         time.sleep(1)
    n=0
    #先读取已观看记录
    has_read=dict()
    read=open('观看记录.txt','r')
    for line in read:
         n+=1
         has_read[line]=''
    read.close()
    
    n=0
    read=open('观看记录.txt','a')
    
    
    #再读取文章列表
    paper=dict()
    f=open('文章URL.txt','r')
    for line in f:
         n+=1
         paper[line]=''
    f.close()
    readingIndex=0 
    for url in paper:
         #print(url)
         if url not in has_read and  readingIndex<PAPER_COUNT :
              readingIndex=readingIndex+1
              #阅读 计时
              browser.get(url)
              read.write(url)#追加记录
              for i in range(1,READING_STEP+1):#
                   js="window.scrollTo("+str((i-1)/READING_STEP)+"*document.body.scrollHeight,"+str(i/READING_STEP)+"*document.body.scrollHeight)"
                   print('第 '+str(readingIndex)+' 篇文章浏览进度:'+str(i/READING_STEP*100)+'% ')
                   browser.execute_script(js)
                   #time.sleep(TIME_FOR_READING)
                   for i in range(1,TIME_FOR_READING+1):
                        print('正在阅读第'+str(readingIndex)+'篇文章,已观看:'+str(i//60)+'分'+str(i % 60)+'秒')
                        time.sleep(1)
    
    #再读取视频记录
    news=dict()
    f=open('视频URL.txt','r')
    for line in f:
         n+=1
         news[line]=''
    f.close()
    
    readingIndex=1 
    for url in news:
         #print('视频'+url)
         if url not in has_read and  readingIndex<=VIDEO_COUNT :
             #阅读 计时
              browser.get(url)
              print('请稍后,正在判断视频')
              #time.sleep(TIME_FOR_AJAX)
              for i in range(1,TIME_FOR_AJAX+1):#
                   print('请稍后,正在判断视频:'+str(i)+'秒……')
                   time.sleep(1)
              try:
                   isnews=True
                   e=browser.find_element(By.ID,'C2k4pjg7itcs00')#Cgi6ap0m271c00
              except NoSuchElementException:
                   isnews=False
                   print('这个不是新闻联播')
              
              if isnews==False:
                   print('正在观看第'+str(readingIndex)+'个视频')
                   try:
                        btn=browser.find_element_by_class_name('outter')
                        btn.click()
                        read.write(url)#追加记录
                        time.sleep(TIME_FOR_AJAX)
                        for i in range(1,TIME_FOR_VIDEO+1):
                             print('正在观看第'+str(readingIndex)+'个视频,已观看:'+str(i//60)+'分'+str(i % 60)+'秒')
                             time.sleep(1)
                        readingIndex=readingIndex+1
                   except NoSuchElementException:
                        print("这不是视频网页")
    #观看新闻联播
    readingIndex=0
    for url in news:
         #print(url)
         if url not in has_read and  readingIndex<1 :
             #阅读 计时
              browser.get(url)
              #time.sleep(TIME_FOR_AJAX)
              for i in range(1,TIME_FOR_AJAX+1):#
                   print('请稍后,正在判断新闻:'+str(i)+'秒……')
                   time.sleep(1)
              try:
                   isnews=True
                   e=browser.find_element(By.ID,'C2k4pjg7itcs00')#Cgi6ap0m271c00  'Cgi6ap0m271c00
              except NoSuchElementException:
                   isnews=False   
              if isnews==True:
                   readingIndex+=1
                   #browser.get(url)
                   #browser.refresh()
                   read.write(url)#追加记录
                   btn=browser.find_element_by_class_name('outter')
                   btn.click()
                   time.sleep(TIME_FOR_AJAX)
                   for i in range(1,TIME_FOR_NEWS+1):
                        print('正在观看新闻联播,已观看:'+str(i//60)+'分'+str(i % 60)+'秒')
                        time.sleep(1)
    read.close()
    

      

  • 相关阅读:
    flexbox子盒子order属性
    将页面中表格数据导出excel格式的文件(vue)
    vue.js生命周期钩子函数及缓存
    js获取n分钟(或n小时或n个月)后(或前)的时间(日期)
    微信小程序之模版的使用(template)
    微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)
    关于UUID
    关于axios及其在vue中的配置
    Vue.js之下拉列表及选中触发事件
    基于iview的后台管理
  • 原文地址:https://www.cnblogs.com/nextseven/p/10495702.html
Copyright © 2020-2023  润新知