python如何模拟网页提交表单并上传文件?
本帖最后由 netspirit 于 2020-8-12 00:11 编辑我想用python实现模拟浏览器在网页填写信息并上传一个文件的功能
但是网上的教程基本都是讲爬虫 就是怎么获取信息的 像这种提交表单信息的少见
而且我这个还是带文件的 提交表单的同时要选择一个文件并上传
而且我用网页审查元素看到网页历史提交的那个php页面里面的response还无法读取...........
有谁能说下怎么用python实现模拟网页浏览器填写表单并选择几个文件提交的功能?
post方式,在files参数中加入添加文件对象,就可以上传文件 我只会易语言的 阿苏斯 发表于 2020-8-10 21:03
我只会易语言的
易语言容易嘛?如果容易我也可以去试试啊............... python 易语言 vb等等 其实这些都可以 一般就是操作网页元素
比如python:
#coding=utf-8
from selenium import webdriver
#登录
driver=webdriver.Firefox()
driver.get("http://xxx.xxx.com/")
driver.find_element_by_id("username").clear()
driver.find_element_by_id("username").send_keys("这里写账号")
driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys("这里写密码")
driver.find_element_by_id("submit").submit()
更好的方法 就是post 而且还要上传文件 用post更方便一些 接口,看他的提交地址,应该是这样 用post就可以,如果你用模拟,你需要解决的 是元素定位问题和文件上传.并没太难 .没有源码大家不好说怎么帮你解决 只能给你方向. 上传文件参考https://blog.csdn.net/daiyu__zz/article/details/84704443 netspirit 发表于 2020-8-10 21:04
易语言容易嘛?如果容易我也可以去试试啊...............
易语言 基本是傻瓜式操作,当然 我说的是用模块 很简单 本帖最后由 thepoy 于 2020-8-11 21:49 编辑
requests的post方法可以实现你的要求,具体怎么用可以参考官方文档,给你一段示例代码:
Form_Data={}
Form_Data['i'] = e
Form_Data['from'] = 'AUTO'
Form_Data['to'] = 'AUTO'
Form_Data['smartresult'] = 'dict'
Form_Data['client'] = client
Form_Data['salt'] = salt
Form_Data['sign'] = sign
Form_Data['ts'] = ts
Form_Data['bv'] = bv
Form_Data['doctype'] = 'json'
Form_Data['version'] = '2.1'
Form_Data['keyfrom'] = 'fanyi.web'
Form_Data['action'] = 'FY_BY_CLICKBUTTION'
'''
长词典用下面这个办法更好看一些,代码量也能少一些
Form_Data = {
'i':e,
'from':'AUTO',
...
'action':'FY_BY_CLICKBUTTION'
}
'''
translate_result = requests.request(method='POST', url=url, data=Form_Data, headers=headers).text # 等同中requests.post(*args, *kwargs)
文件上传参考中文文档:https://requests.readthedocs.io/zh_CN/latest/user/quickstart.html#post-multipart-encoded
页:
[1]