を使用して送信するtext型とプレスの入力を入力します。私は必要なもの私はこのHTML持っているのpython
<input type="text" class="txtSearch">
<input type="submit" value="Search" class="sbtSearch">
は、テキストフィールドに書き込み、その後のpythonを使用して提出をクリックすることです。入力タグはフォームの中にありません。どのように私はそれを行うことができますか?
を使用して送信するtext型とプレスの入力を入力します。私は必要なもの私はこのHTML持っているのpython
<input type="text" class="txtSearch">
<input type="submit" value="Search" class="sbtSearch">
は、テキストフィールドに書き込み、その後のpythonを使用して提出をクリックすることです。入力タグはフォームの中にありません。どのように私はそれを行うことができますか?
実際にフィールドに値を設定して「提出」する必要はありません。あなたは提出をシミュレートして、望ましい結果を得ることができます。
Firefoxのfirebugの横にBeautifulSoupとurllibを使用します。 firebugでネットワークトラフィックを監視し、送信がdongであることをHTTP POSTから取得します。 dictを作成してURLエンコードします。あなたのURLリクエストと一緒にそれを渡してください。例えば
:
from BeautifulSoup import BeautifulSoup
import urllib
post_params = {
param1 : val1,
param2 : val2,
param3 : val3
}
post_args = urllib.urlencode(post_params)
url = 'http://www.website.com/'
fp = urllib.urlopen(url, post_args)
soup = BeautifulSoup(fp)
のparamヴァルスは、あなたが提出しようとしているものに応じて変化します。あなたのコードに適切な調整をしてください。
実際にフィールドに値を設定する必要がある場合は、ここではセレンの解決法があります。ただし、通常はテスト目的でのみ必要になります。
from selenium import webdriver
webpage = r"https://www.yourwebsite.com/" # edit me
searchterm = "Hurricane Sandy" # edit me
driver = webdriver.Chrome()
driver.get(webpage)
sbox = driver.find_element_by_class_name("txtSearch")
sbox.send_keys(searchterm)
submit = driver.find_element_by_class_name("sbtSearch")
submit.click()
私はGoogleで検索してみましたが、任意の簡単な例を見つけることができませんでしたが...私は見つけることができるすべては私がMechanizeのを使用する必要があるが、それは必要なことだと思う...私は全く理解couldntの長いドキュメンテーションですフォーム...私はあなたに何を表示する必要がありますか? – a1204773