Python——selenium自动点击下载腾讯文档

成功属于有准备的人
腾讯文档使用selenium方法点击下载,早前写的,现下网页格局可能有所改变。
代码基本都有注释。
那时刚入坑不久,代码不好看还望见谅。

from bs4 import BeautifulSoup
from selenium import webdriver
import traceback
import time
import numpy
from selenium.webdriver.common.action_chains import ActionChains

# 登录网站
driver = webdriver.Chrome()
driver.get('https://docs.qq.com/desktop/templates-list.html?padtype=0&_wv=2&_wwv=512')
time.sleep(3)
# 自动点击登录
ActionChains(driver).move_by_offset(508, 422).click().perform()
time.sleep(2)
# 格式化的获取页面代码
data = driver.page_source
# driver.minimize_window()  # 将窗口置为最小化,暂时实现不了,click不到东西
# 循环队列
a = numpy.arange(0, 201, 1)
# 循环参数
i = 73
# 超时参数
b = 0
# 循环点击各个模板
while i in a:
    time.sleep(1)
    dianji = driver.find_elements_by_class_name("sub")
    print(i)
    # 获取当前网址,以供判断
    url1 = driver.current_url
    time.sleep(0.5)
    dianji[i].click()
    time.sleep(1)
    # 等待加载
    data1 = driver.page_source
    # 再次获取网址,以供判断
    url2 = driver.current_url
    # 判断是否超时
    if url1 != url2:
        # 判断是否需要VIP
        try:
            # 点击
            button1 = driver.find_element_by_id("main-menu-file")
            button1.click()
            time.sleep(0.5)
            # 点击
            button2 = driver.find_element_by_xpath("//li[text()='导出为']")
            button2.click()
            time.sleep(0.5)
            # 点击
            button3 = driver.find_element_by_xpath("//li[text()='本地Word文档(.docx)']")
            button3.click()
            time.sleep(2)
            # 返回上一页
            print("下载成功")
        except Exception as e:  # 得到未知错误时输出e
            print("需要VIP")
        # 返回上一界面
        driver.back()
        # 参数相加
        i = i + 1
    else:
        # b参数阈值可以自行设置,合理即可
        if b <= 10:
            print("超时")
            time.sleep(1)
            b = b + 1
        else:
            # 腾讯文档可能出错,点击文件时一直显示超时(例如73号),避免程序无限循环所作判断
            print("同以文件超时过多次,文件可能出现问题,执行下一文件")
            b = 0
            i = i + 1
# 退出
driver.quit()

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值