python使用selenium,webdriver自动下载百度网盘内容

想实现一个自动下载微信公众号分享百度网盘图片链接的爬虫,使用selenium和火狐的webdriver进行完成

1.首先根据自己的浏览器下载相应的webdriver驱动器,python中导入selenium包。webdriver下载好后,放在浏览器的默认安装地址中,

然后再在自己的python默认安装地址中也加入一份webdriver,并且添加环境变量path,加入浏览器的安装地址,即:webdriver放置的目录

python使用selenium,webdriver自动下载百度网盘内容python使用selenium,webdriver自动下载百度网盘内容python使用selenium,webdriver自动下载百度网盘内容

2.获取自己浏览器的默认配置,也可以不用,即去掉

propath = r"C:\Users\用户名\AppData\Roaming\Mozilla\Firefox\Profiles\05dg6q1p.default"
profile = webdriver.FirefoxProfile(propath)#使用自己浏览器的配置,我的是火狐浏览器

,其实不影响什么。获取的话根据写的路径自己找

3.获取自己百度网盘的cookie,先在浏览器上登录,然后点击检查

python使用selenium,webdriver自动下载百度网盘内容

找到网络点击第一条发出的请求

python使用selenium,webdriver自动下载百度网盘内容

找到cookie中的名字是BDUSS,复制替换源代码的值

python使用selenium,webdriver自动下载百度网盘内容python使用selenium,webdriver自动下载百度网盘内容

4.替换百度网盘的连接,和提取码后就大体完成了

5.可以自己编写从文件读取多条百度网盘链接的函数,在调用本源代码。此方法仅是适用一条百度链接

源代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
propath = r"C:\Users\用户名\AppData\Roaming\Mozilla\Firefox\Profiles\05dg6q1p.default"
profile = webdriver.FirefoxProfile(propath)#使用自己浏览器的配置,我的是火狐浏览器
#使用自己百度网盘的cookie
cookie1 = {'value': '自己百度网盘的cookie',
'name': 'BDUSS'}
driver = webdriver.Firefox()#括号参数:executable_path="driver路径",可配置浏览器驱动的目录加入了环境变量,就不用括号里的参数了
#https://pan.baidu.com/s/18BSsXsCKUfpEumKUMT8mTA
# 提取码:bhnd 测试
link="https://pan.baidu.com/s/18BSsXsCKUfpEumKUMT8mTA"
num="bhnd"
driver.get(link)#先建立链接
driver.add_cookie(cookie_dict=cookie1)#添加cookie进行登录 elem = driver.find_element_by_id("accessCode")
elem.send_keys(num)
elem.send_keys(Keys.RETURN)#输入回车 time.sleep(10)#等待到完全加载后再找元素
nowurl=driver.current_url
#
# sreach_window = driver.current_window_handle
#全选
driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[2]/div/ul[1]/li[1]/div/span[1]").click()
time.sleep(2)
#点击下载
# driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div/div[1]/div/div[2]/div/div/div[2]/a[2]/span/span").click()#自己决定是下载还是保存,下载可能会出现输入校验码的情况,无法解决
#点击保存
driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div/div[1]/div/div[2]/div/div/div[2]/a[1]").click()
time.sleep(2)
driver.find_element_by_xpath("/html/body/div[3]/div[3]/a[2]/span/span").click()#找到确认按钮点击

如果对你有帮助的话不妨点个赞,欢迎在评论区留言

上一篇:Unity3D游戏制作(三)——移动平台上的角色阴影制作


下一篇:Appium Android Bootstrap源码分析之简介