python控制浏览器上传文件
自动化爬虫方法和库很多,难点大多数在登录。可以大致分为:普通验证码,扫码登录,QQ一键登录,拖动验证,无痕验证,人工识别(比如12306登录)
万能大法可以破解一切以上需求,自动控制浏览器行为

参考文献:
https://www.jianshu.com/p/1531e12f8852
https://blog.csdn.net/sinat_41774836/article/details/88965281
直接贴上我的代码
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
import time
import os class upload(object):
#打开浏览器
def __init__(self):
self.videopwd = 'F:\\脚本\\douyin\\douyindata2'
self.videolist = os.listdir(self.videopwd)
self.driver = webdriver.Chrome()
self.driver.get("https://不告诉你.com")
#等待10秒,微信扫码登录后继续操作
time.sleep(10) #执行上传
def uploadbtn(self,file):
#定位上传按钮,添加本地文件
wait_find_element=WebDriverWait(self.driver,8).until(EC.presence_of_element_located((By.CLASS_NAME, "file-input")))
wait_find_element.send_keys(file)
time.sleep(8)
#点击一键发布
wait_find_element=WebDriverWait(self.driver, 15).until(EC.presence_of_element_located((By.CLASS_NAME, "btn-right")))
wait_find_element.click()
print('上传',file,'结束') #重命名
def renamefile(self,file):
newvideo = video.replace('@', '')
newvideo = newvideo.replace('#我的观影报告', '')
newvideo = newvideo.replace('#', '')
newvideo = newvideo.replace('抖音', '')
newvideo = newvideo.replace('小助手', '')
newvideo = newvideo.replace('', '')
newvideo = newvideo.replace(' ', '')
srcfile = os.path.join(self.videopwd, video)
dstfile = os.path.join(self.videopwd, newvideo)
try:
os.rename(srcfile, dstfile)
return (dstfile)
except:
print(srcfile,'文件重命名失败') #删除文件
def delfile(self,file):
if os.path.exists(file):
os.remove(file)
if os.path.exists(file):
print('删除',file,'失败')
else:
print('删除',file,'成功') if __name__=='__main__':
pq=upload()
for video in pq.videolist:
if 'mp4' in video:
#重命名
file=pq.renamefile(video)
#执行上传
pq.uploadbtn(file)
#删除视频
pq.delfile(file)
time.sleep(5)
最后成功:

python控制浏览器上传文件的更多相关文章
- Python模拟浏览器上传文件脚本(Multipart/form-data格式)
http协议本身的原始方法不支持multipart/form-data请求,这个请求由原始方法演变而来的. multipart/form-data的基础方法是post,也就是说是由post方法来组合实 ...
- Python基于Python实现批量上传文件或目录到不同的Linux服务器
基于Python实现批量上传文件或目录到不同的Linux服务器 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/rootpath_fo ...
- 使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件
使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件 原来的写法: <input type="file" accept="image/x-png ...
- Android上传图片到PHP服务器并且支持浏览器上传文件(word、图片、音乐等)
暑假已经过了一半了,这才完成计划当中的第二个任务.虽然进度是慢了点.但也算是暑假的收获吧.下面我就把我学习当中的收获记录在此. 还是跟以往一样,先上图片. 操作的步骤:打开程序---->选择上传 ...
- IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题【转】
转自:http://www.iefans.net/ie-shangchuan-bendi-lujing-fakepath/ 在使用<input id="file_upl" t ...
- IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题
在使用<input id="file_upl" type="file" />控件上传文件时,有时会需要获取文件本地路径展示给客户,这时可以通过这样的 ...
- Python+Selenium学习--上传文件
场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡在 ...
- 【TFS 2017】使用浏览器上传文件(TFVC)或者编辑代码,错误提示TF14098,需要对文件有PendChange 权限
从TFS 2015开始,微软在TFS系统中增加了一个非常吸引开发人员的功能,"快速代码编辑器" (Quick Code Editor).使用这个功能,你可以在任何安装了浏览器的设备 ...
- angularJS 在edge浏览器上传文件,无法主动触发ng-click
今天发现的问题 在谷歌浏览器一直运行良好的功能,在edge浏览器不能使用. 代码参考我的另一篇博客:WebAPI Angularjs 上传文件 不能运行的原因 下图红框中的代码在edge浏览器中无法执 ...
随机推荐
- MongoDB之几种情况下的索引选择策略
一.MongoDB如何选择索引 如果我们在Collection建了5个index,那么当我们查询的时候,MongoDB会根据查询语句的筛选条件.sort排序等来定位可以使用的index作为候选索引:然 ...
- 理解Cookie和Session机制,及其安全问题
大家常说"Cookie保存在客户端而Session保存在服务端",很多人看了有疑惑,明明Session就在Cookie中啊,为什么这么说?二者到底有啥区别? 一.Cookie 首先 ...
- dgv 自动换行
//设置自动换行 dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True; //设置自动调整高度 dgv.AutoSizeRowsMode ...
- 【经验总结-markdown】markdown字体和颜色设置
字体设置 关键词为face <font face = "黑体">我是黑体</font> <font face = "宋体"> ...
- 集合框架-工具类-Collections-排序
1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.uti ...
- JavaScript之递归查找所有父节点
......data: () => ({ // 数据 dt: [{ id: '1', children: [ { id: '1-1', children: [ { id: '1-1-1', ch ...
- Flutter 2.10 更新详解
Flutter 2.10 版已正式发布!虽然⾃ 上次稳定版本发布 以来还不到两个⽉,即使在这么短的时间内,我们也已处理和关闭了 1843 个 Issue,合并了来⾃全球 155 位贡献者的 1525 ...
- webpack学习:uni运行时代码解读一 (页面初始化加载)
uni的vue代码是如何在微信小程序里面执行的,对此比较感兴趣所以去调试学习了一波. 准备工作 // 在vue.config.js里打开非压缩的代码 module.exports = { config ...
- react react-smooth动画
首先自然而然的安装一下依赖: npm install react-smooth --save-dev 接下来就是组件代码啦: import React, { Component, Fragment } ...
- JVM垃圾收集器(八)
一.垃圾收集器 有了前面JVM参数的了解下面来看下JVM的垃圾收集器:如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现. JVM(HotSpot)有7种垃圾收集器,7种垃圾收集 ...