2016-04-07 18 views
-1

機械化するのが初めてで、どのように動作するのかよく分かりませんが、多くのチュートリアルを試しましたが、ほとんどが古く、動作しませんでした。 。Mechanizeを使用してPythonでHTMLフォームを記入する方法

最初の質問は、機械化はどのような影響を与えますか?それはエンドユーザがそれを見ることができるように、特定のブラウザでフォームを埋めるか、それともエンドユーザが見ることができないMechanizeブラウザのすべてを作るのか?

私は機械化がフォームを記入するようにしようとしています、フォームはページをリロードした後に入力名を変更します、番号で数値を変更するにはどうすればいいですか?私はコードを実行した後に取得しています

import mechanize 

br = mechanize.Browser() 

br.set_handle_robots(False) 

br.addheaders = [("User-agent","Mozilla/5.0")] 

gitbot = br.open("https://arkhamnetwork.org/community/register") 

br.select_form(nr=0) 

br["user[username]"] = "username" 

br["user[email]"] = "email"  

br["user[password]"] = "password" 

sign_up = br.submit() 

エラー: NameError: name 'username' is not defined

私は私はそれを行うことができますどのように、入力された名前を使用せずに、ページ上のすべてのフォームに必要事項を記入したいですか?私は解決策を見つけた

+0

あなたは、ユーザー名などの文字列を渡す必要があります私は、電子 '「foobarに」'、あなたはusername'がする '何を期待していますか?メールとパスワードに同じものが必要です。また、br ["user [login]"] 'が間違っています –

+0

" name " - ページの最初のフィールド。 – ShellRox

+1

はい、しかし、あなたはユーザー名を渡す必要があります、私は1分で答えを書いて、それを行う方法を示します –

答えて

1

:私はフォームを選択するために必要な理由

フォームは、実際にコントロールを含むされ、厥。この特定のウェブサイト上のフォームに記入

コード:

import mechanize 

br = mechanize.Browser() 

response = br.open("https://arkhamnetwork.org/community/register") 

br.addheaders = [("User-agent","Mozilla/5.0")] 

gitbot = br.open("https://arkhamnetwork.org/community/register") 

br.select_form(nr=1) 

br.set_all_readonly(False) 

br.form.set_value("test", nr=0) 

br.method = "POST" 

response = br.submit() 

print response.geturl('http://arkhamnetwork.org/community/register/register') 
関連する問題