用Python+Selenium下载网盘特定标题的PDF文件

68 篇文章 0 订阅
28 篇文章 0 订阅

亿牛云代理
我想要从百度云网盘上下载一些有特定标题的PDF文件,用来做数据分析。但是百度云网盘的下载速度很慢,而且有些文件需要付费才能下载。所以我决定用Python和Selenium来写一个爬虫程序,自动化地搜索和下载我想要的文件。为了防止被百度云网盘检测到,我还使用了代理IP来隐藏我的真实IP地址。这样,我就可以快速地获取我需要的数据,代码如下:

# 导入selenium库
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 亿牛云 爬虫代理加强版 设置代理IP认证信息
proxy_username = "16YUN"
proxy_password = "16IP"

# 亿牛云 爬虫代理加强版 设置代理IP认证信息
proxy_ip = "www.16yun.cn"
proxy_port = "31000"

# 创建一个Chrome选项对象
options = webdriver.ChromeOptions()

# 添加代理IP的参数
options.add_argument(f"--proxy-server=http://{proxy_username}:{proxy_password}@{proxy_ip}:{proxy_port}")

# 创建一个Chrome浏览器对象,并传入选项对象
driver = webdriver.Chrome(options=options)

# 打开百度云网盘网页
driver.get("https://pan.baidu.com/")

# 等待页面加载完成
wait = WebDriverWait(driver, 10)

# 找到登录按钮并点击
login_button = wait.until(EC.element_to_be_clickable((By.ID, "TANGRAM__PSP_4__footerULoginBtn")))
login_button.click()

# 输入百度云盘的用户名和密码并登录(请替换为你自己的用户名和密码)
username = "your_username"
password = "your_password"
username_input = wait.until(EC.visibility_of_element_located((By.ID, "TANGRAM__PSP_4__userName")))
password_input = wait.until(EC.visibility_of_element_located((By.ID, "TANGRAM__PSP_4__password")))
username_input.send_keys(username)
password_input.send_keys(password)
submit_button = wait.until(EC.element_to_be_clickable((By.ID, "TANGRAM__PSP_4__submit")))
submit_button.click()

# 等待登录成功
wait.until(EC.title_contains("百度网盘"))

# 找到搜索框并输入要下载的PDF文件的标题(请替换为你想要的标题)
title = "your_title"
search_input = wait.until(EC.visibility_of_element_located((By.ID, "searchInput")))
search_input.send_keys(title)

# 点击搜索按钮
search_button = wait.until(EC.element_to_be_clickable((By.ID, "searchBtn")))
search_button.click()

# 等待搜索结果出现
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "file-name")))

# 找到第一个匹配的PDF文件并点击
pdf_files = driver.find_elements_by_css_selector(".file-name .file-name-text")
for pdf_file in pdf_files:
    if pdf_file.text.endswith(".pdf"):
        pdf_file.click()
        break

# 点击下载按钮
download_button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "g-button-download")))
download_button.click()

# 关闭浏览器
driver.quit()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值