zoukankan      html  css  js  c++  java
  • python实现简单的百度云自动下载

    最近女同让我帮助从百度云下载200个文件,给了我连接和提取码,这种重复的工作不适合人做写了一个简单的爬虫

    #coding=utf-8
    '''
    自动填写提取码下载百度云资源
    方法:
    for
      读取文件中的连接和提取码
    1 打开网页(link)
    2 输入提取码
    3 下载
    '''
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    
    driver = webdriver.Chrome()
    f = open("baidulink.txt",encoding="utf-8")  
    l = open("log.txt","w")             
    lines = f.readlines()                
    for line in lines: 
        
        if line != '
    ':
            if len(line) > 10:
                print (line)  
                list = line.split(" ")
                print (list)
                link = list[2]
                link = link.split("")[1]
                link = link.strip()
                print (link)
                num = list[3].split("")[1]
                num = num.strip()
                print (num)
                driver.get(link)
                elem = driver.find_element_by_id("eoX9ze") 
                elem.send_keys(num)
                elem.send_keys(Keys.RETURN)
                time.sleep(1)
                sreach_window = driver.current_window_handle  
                driver.find_element_by_xpath("//*[@id='layoutMain']/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click()
                '''
                写日志,便于检查下载丢失的文件
                '''
                l.writelines(line)
                l.write('
    ')
        line = f.readline() 
        time.sleep(3)
    f.close() 

    我把连接存在 baidulink.txt中,文件是逐行读取,提取出连接和提取码

    使用selenium模拟浏览器,必须保证你的浏览器是Google Chrome,并装了chromedriver,相关内容自行百度

    注意一下几点:

    1 elem = driver.find_element_by_id("eoX9ze") 

    这个id好是会变的,如果变了按F12查看

    2  sreach_window = driver.current_window_handle  

    页面跳转后,需要把driver定位到当前页面

    3 driver.find_element_by_xpath("//*[@id='layoutMain']/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click()

    这里使用xpath(还有id name selector等,选择适合的),可以使用选择那段代码然后复制xpath

    以上功能十分简单,能够节省很多时间。如果频繁下载,会遇到输入验证码的时候,我选择等待,还有其他方法(可以使用代理等)

  • 相关阅读:
    POJO,简单的Java对象
    Oracle 11g R2 for Win7旗舰版(64位)- 安装
    Eclipse安装与配置
    Tomcat 安装、配置与部署
    图形数据库 Neo4j 开发实战【转载】
    Java 语言中 Enum 类型的使用介绍【转载】
    IBM Java 7 新特性和在 WAS 8.5 中的配置【转载】
    为Eclipse指定JVM
    网页页面的宽度:950 还是 960?
    Zabbix + Grafana
  • 原文地址:https://www.cnblogs.com/zhxuxu/p/9683464.html
Copyright © 2011-2022 走看看