当前位置:首页 » 编程语言 » python自动提交表单

python自动提交表单

发布时间: 2023-01-12 14:42:32

⑴ 如何用python脚本提交JS的表单

如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 <form> 里面的 action 填写服务端的处理路由就可以了。或者用 <a> 指向服务器路由get querystring。前端方面不需要python啊。
前端的提交交互动作,都是由 javascript 处理就可以了
远程登录ssh之后,那个web页面可以通过url访问还是服务器上可以直接读取的文件?
如果是前者,就等于python爬虫了,使用 uillib urllib2访问 web页面的 url 得到响应,然后解析,再使用刚才两个标准模块里面的.大概事例代码:
import urllib, urllib2
res = urllib2.urlopen("http://your.web.com")
html = res.read()
# 解析 html ,读取 你要提交的内容

# 提交到新的连接
# get
params = urllib.urlencode({'programe': 'python', 'age': 12})
f = urllib.urlopen("http://your.web.com?%s" % params)
# post
params = urllib.urlencode({'programe': 'python', 'age': 12})
f = urllib.urlopen("http://your.web.com", params)

直接读取服务器上的web文件内容解析提交的内容,后面的过程也是一样。
另外,python 有个 requests 的库,封装得更好,使用方便

⑵ python爬虫简单问题,HTML对象的定位问题

这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素:

  • find_element_by_id

  • find_element_by_name

  • find_element_by_xpath

  • find_element_by_link_text

  • find_element_by_partial_link_text

  • find_element_by_tag_name

  • find_element_by_class_name

  • find_element_by_css_selector

  • 下面是查找多个元素(这些方法将返回一个列表):

  • find_elements_by_name

  • find_elements_by_xpath

  • find_elements_by_link_text

  • find_elements_by_partial_link_text

  • find_elements_by_tag_name

  • find_elements_by_class_name

  • find_elements_by_css_selector

  • 除了上面给出的公共方法,这里也有两个在页面对象定位器有用的私有方法。这两个私有方法是find_element和find_elements。
    常用方法是通过xpath相对路径进行定位,同时CSS也是比较好的方法。举例:

    [html]view plain

  • <html>

  • <body>

  • <formid="loginForm">

  • <inputname="username"type="text"/>

  • <inputname="password"type="password"/>

  • <inputname="continue"type="submit"value="Login"/>

  • <inputname="continue"type="button"value="Clear"/>

  • </form>

  • </body>

  • <html>

  • 定位username元素的方法如下:

  • [python]view plain

  • username=driver.find_element_by_xpath("//form[input/@name='username']")

  • username=driver.find_element_by_xpath("//form[@id='loginForm']/input[1]")

  • username=driver.find_element_by_xpath("//input[@name='username']")

  • [1] 第一个form元素通过一个input子元素,name属性和值为username实现

  • [2] 通过id=loginForm值的form元素找到第一个input子元素

  • [3] 属性名为name且值为username的第一个input元素


  • 二. 操作元素方法

    在讲述完定位对象(locate elements)之后我们需要对该已定位对象进行操作,通常所有的操作与页面交互都将通过WebElement接口,常见的操作元素方法如下:

  • clear 清除元素的内容

  • send_keys 模拟按键输入

  • click 点击元素

  • submit 提交表单

  • 举例自动访问FireFox浏览器自动登录163邮箱。

    [python]view plain

  • fromseleniumimportwebdriver

  • fromselenium.webdriver.common.keysimportKeys

  • importtime

  • #Login163email

  • driver=webdriver.Firefox()

  • driver.get("")

  • elem_user=driver.find_element_by_name("username")

  • elem_user.clear

  • elem_user.send_keys("15201615157")

  • elem_pwd=driver.find_element_by_name("password")

  • elem_pwd.clear

  • elem_pwd.send_keys("******")

  • elem_pwd.send_keys(Keys.RETURN)

  • #driver.find_element_by_id("loginBtn").click()

  • #driver.find_element_by_id("loginBtn").submit()

  • time.sleep(5)

  • assert""indriver.title

  • driver.close()

  • driver.quit()

  • 首先通过name定位用户名和密码,再调用方法clear()清除输入框默认内容,如“请输入密码”等提示,通过send_keys("**")输入正确的用户名和密码,最后通过click()点击登录按钮或send_keys(Keys.RETURN)相当于回车登录,submit()提交表单。

  • PS:如果需要输入中文,防止编码错误使用send_keys(u"中文用户名")。


  • 三. WebElement接口获取值

    通过WebElement接口可以获取常用的值,这些值同样非常重要。

  • size 获取元素的尺寸

  • text 获取元素的文本

  • get_attribute(name) 获取属性值

  • location 获取元素坐标,先找到要获取的元素,再调用该方法

  • page_source 返回页面源码

  • driver.title 返回页面标题

  • current_url 获取当前页面的URL

  • is_displayed() 设置该元素是否可见

  • is_enabled() 判断元素是否被使用

  • is_selected() 判断元素是否被选中

  • tag_name 返回元素的tagName

⑶ python http requests 怎么实现模拟登录,提交表单

以下实例是一个完整的代码,实现了从博客获取内容发布至网络,分别实践抓取博客内容、模拟登录、表单提交这几步;
#注意,以下程序是一个完全程序,如果只需要实现模拟登录,提交表单,删除抓取部分即可,相关的代码已经清楚标注,可以根据自己实际情况修改。
代码如下:
# -*- coding: utf-8 -*-
import re
import urllib
import urllib2
import cookielib
#第一步,获取博客标题和正文 ,“IP”可以改为实际地址;
url = "IP"
sock = urllib.urlopen(url)
html = sock.read()
sock.close()
content = re.findall('(?<=blogstory">).*(?=<p class="right artical)', html, re.S)
content = re.findall('<script.*>.*</script>(.*)', content[0], re.S)
title = re.findall('(?<=<title>)(.*)-.* - CSDN.*(?=</title>)', html, re.S)
#根据文章获取内容新建表单值
blog = {'spBlogTitle': title[0].decode('utf-8').encode('gbk'), #文章标题
'spBlogText': content[0].decode('utf-8').encode('gbk'),#文章内容
'ct': "1",
'cm': "1"}
del content
del title

#第二步,模拟登录网络;
cj = cookielib.CookieJar()
#登陆网络的用户名和密码
post_data = urllib.urlencode({'username': '[username]', 'password': '[password]', 'pwd': '1'})
#登录地址路径
path = 'https://passport..com/?login'
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Opera/9.23')]
urllib2.install_opener(opener)
req = urllib2.Request(path, post_data)
conn = urllib2.urlopen(req)

#获取网络登陆认证令牌
bd = urllib2.urlopen(urllib2.Request('http://hi..com/[username]/creat/blog')).read()
bd = re.findall('(?<=bdstoken\" value=\").*(?=ct)', bd, re.S)
blog['bdstoken'] = bd[0][:32]
#设置分类名
blog['spBlogCatName'] = 'php'
#第四步,比较表单,提交表单;req2 = urllib2.Request('http://hi..com/[username]/commit', urllib.urlencode(blog))
#最后,查看表单提交后返回内容,检验;
print urllib2.urlopen(req2).read()
#注意:将[username]/[password]替换为自己真实用户名和密码

⑷ 怎么实现表单自动提交 不用手动按submint

可以使用AJAX,文本改变或者是文本框失去焦点的时候就提交数据。可以每填写一条数据,提交一次。

如果不用AJAX,也可以用JS代码,在某个文本框失去焦点的时候,触发提交表单的代码。这种就是不好判断的了。

⑸ python3中,使用get提交表单时怎样使用header

defopenUrl(url):
importurllib2
url='http://'+url
req=urllib2.Request(url)
//根据你自己的需要设置header,add_header方法中需要两个参数,key和value的键值对
req.add_header('User-agent','Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/33.0.1707.0Safari/537.36')
response=urllib2.urlopen(req)
the_page=response.read()
printthe_page
printresponse.geturl()
printresponse.info()
printresponse.headers

openUrl('xxx.xxx.xxx')

⑹ 怎么用python抓取网页并实现一些提交操作

首先我们找到登录的元素,在输入账号处选中–>右键–>检查

然后直接查询网页源代码去找到上面的部分,根据标签来观察提交的表单参数,这里强调一下:

form标签和form标签下的input标签非常重要,form标签中的action属性代表请求的URL,input标签下的name属性代表提交参数的KEY。
代码参考如下:
import requests
url="网址" #action属性
params={
"source":"index_nav", #input标签下的name
"form_email":"xxxxxx", #input标签下的name
"form_password":"xxxxxx" #input标签下的name

}
html=requests.post(url,data=params)
print(html.text)

运行后发现已登录账号,相当于一个提交登陆的操作

⑺ 我打算用python去处理html的form表单,该怎么实现

运用 web.py 框架
例如 index页面有两个输入框
<form action='/index',method='post'>
<input type="text" name="name" id="name" />
<input type="text" name="pwd" id="pwd" />
</form>
那么 在python 中
class index:
def GET(self, name):
inputall =web.input(name=None,pwd=None)
name= inputall.name
pwd= inputall.pwd
print print name ,pwd
def POST(self, name):
inputall =web.input(name=None,pwd=None)
name= inputall.name
pwd= inputall.pwd
print print name ,pwd
就得到了页面提交的 name 和pwd

⑻ 如何在 Python 中模拟 post 表单来上传文件

在机器上安装了Python的setuptools工具,可以通过下面的命令来安装 poster:
easy_install poster
装完之后,安装下面代码就可以实现post表单上传文件了:

from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2

# 在 urllib2 上注册 http 流处理句柄
register_openers()

# 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码
# "image1" 是参数的名字,一般通过 HTML 中的 <input> 标签的 name 参数设置

# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})

# 创建请求对象(localhost服务器IP地址,5000服务器端口)
request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)
# 实际执行请求并取得返回
print urllib2.urlopen(request).read()

⑼ python get提交表单问题

  1. GET方式请求http://nbsw.yundasys.com:12101/nbsw/go.php?wen=1200964701685&jmm=null

    response中获得http://qz.yundasys.com:18090/ws/kjcx/cxend.jsp?wen=2bbd581b1263237ea6bdcecba6&jmm=null

  2. 直接POST方式请求步骤1获得的地址http://qz.yundasys.com:18090/ws/kjcx/cxend.jsp?wen=2bbd581b1263237ea6bdcecba6&jmm=null

  3. 从步骤2中的response里获得http://qz.yundasys.com:18090/ws/qry1.jsp?wen=1200964701685&key=

  4. GET方式请求http://qz.yundasys.com:18090/ws/qry1.jsp?wen=1200964701685&key=

⑽ python爬虫能做什么

Python是一门非常适合开发网络爬虫的编程语言,相比于其他静态编程语言,Python抓取网页文档的接口更简洁;相比于其他动态脚本语言,Python的urllib2包提供了较为完整的访问网页文档的API。此外,python中有优秀的第三方包可以高效实现网页抓取,并可用极短的代码完成网页的标签过滤功能。

Python爬虫架构组成:

1. URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器;

2. 网页下载器:爬取url对应的网页,存储成字符串,传送给网页解析器;

3. 网页解析器:解析出有价值的数据,存储下来,同时补充url到URL管理器。

Python爬虫工作原理:

Python爬虫通过URL管理器,判断是否有待爬URL,如果有待爬URL,通过调度器进行传递给下载器,下载URL内容,并通过调度器传送给解析器,解析URL内容,并将价值数据和新URL列表通过调度器传递给应用程序,并输出价值信息的过程。

爬虫可以做什么?
你可以用爬虫爬图片,爬取视频等等你想要爬取的数据,只要你能通过浏览器访问的数据都可以通过爬虫获取。

Python爬虫常用框架有:

grab:网络爬虫框架;

scrapy:网络爬虫框架,不支持Python3;

pyspider:一个强大的爬虫系统;

cola:一个分布式爬虫框架;

portia:基于Scrapy的可视化爬虫;

restkit:Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。

demiurge:基于PyQuery的爬虫微框架。

热点内容
电脑直播唱歌电脑需要什么配置 发布:2025-07-13 19:03:45 浏览:88
config连接数据库 发布:2025-07-13 19:02:24 浏览:951
bt文件解压 发布:2025-07-13 19:02:16 浏览:744
比较便宜的云服务器 发布:2025-07-13 18:29:59 浏览:406
切换ftp 发布:2025-07-13 18:29:07 浏览:738
锐龙哪个配置最高画质 发布:2025-07-13 18:22:34 浏览:196
压缩机工作原理图 发布:2025-07-13 18:10:15 浏览:39
黑暗追求者安卓怎么联机 发布:2025-07-13 18:10:07 浏览:617
北大保安自学编程 发布:2025-07-13 18:09:58 浏览:858
java递归排列 发布:2025-07-13 18:02:43 浏览:473