當前位置:首頁 » 編程語言 » 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-14 01:49:45 瀏覽:209
銳龍3代編程 發布:2025-07-14 01:48:22 瀏覽:967
配置管理需要會什麼 發布:2025-07-14 01:35:35 瀏覽:372
去除頭條中的緩存 發布:2025-07-14 01:27:38 瀏覽:783
php開啟錯誤 發布:2025-07-14 01:16:49 瀏覽:998
esp資料庫 發布:2025-07-14 01:16:44 瀏覽:980
python查找文件路徑 發布:2025-07-14 01:16:03 瀏覽:514
phpapachetomcat 發布:2025-07-14 01:08:41 瀏覽:123
伺服器運維看什麼書 發布:2025-07-14 01:07:32 瀏覽:988
密碼器動態密碼怎麼弄 發布:2025-07-14 00:44:27 瀏覽:386