2017-01-13 13 views
0

を提出したい、urllibはは、urllib2のは、ライブラリを機械使用してフィールドに必要事項を記入することはできませんすることはurllibはとurllib2のと私のコードのサンプルです:私は、フォームここ

import urllib 
import urllib2 

url = 'http://example.com/schedule-appointment.php' 
name = "Name:" 
phone = "Phone:" 
email = "E-mail:" 
office = "Office:" 
rq_date = "Requested date and time:" 
alt_date = "Alternative date and time:" 
comments = "Reason for visit:" 

values = { 
     name : "Vasya", 
     phone : "1234567890", 
     email : "[email protected]", 
     office : "Madison Ave (NYC)", 
     rq_date : "01/29/2017 10:00 am" , 
     alt_date : "01/29/2017 10:00 am", 
     comments : "this is a test" 
     } 
data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read() 
print(the_page) 

と、そのメッセージが表示されました:{ "状態":偽、" MSG ":" すべてのフィールドに記入して下さい "}

とMechanizeのと別の例::

import mechanize 
br = mechanize.Browser() 
urlofmypage = 'http://www.example.com/schedule-appointment.php' 
br.open(urlofmypage) 
print(br.geturl()) 
br.select_form(nr=0) 
br['Name:'] = ['Vasya'] 
br['Phone:'] = ['1234567890'] 
br['E-Mail:'] = ['[email protected]'] 
br['Office:'] = ['Madison Ave (NYC)'] 
br['Requested date and time:'] = ['01/29/2017 10:00 am'] 
br['Alternative date and time:'] = ['01/29/2017 10:00 am'] 
br['Reason for visit:'] = ['this is a test'] 

result = br.submit() 
print(result) 

があることを得ましたhttp://www.example.com/schedule-appointment.php

Traceback (most recent call last): File "/Users/vasyaiv/Desktop/Automation test Python/draft.py", line 68, in br.select_form(nr=0) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mechanize/_mechanize.py", line 524, in select_form raise FormNotFoundError("no form matching "+description) FormNotFoundError: no form matching nr 0

任意のアイデア?

+2

してください'{" status ":false、" msg ":"すべてのフィールドに記入してください。 "}' - どのフィールド? 'FormNotFoundError:nrに一致するフォームがありません ' - どのフォームですか?また、 'blabla.com'が単なるプレースホルダの場合、' example.com'を使用してください。私の仕事プロキシは 'blabla.com'を好まないからです。 –

答えて

0

ページにはフォームがありません。あなたはbr.open(...)で開こうとします。 ターゲットページにHTMLコードのフォームが含まれているかどうかを確認します。

より多くのバグ:あなたがコントロールで間違ったIDを使用している

  1. ( "名:"、 "電話番号:")。私は、あなたがリストをテキスト入力を埋めるためにしようと

  2. など「電話」、ターゲットページ上のコントロールのIDは「名前」のように見えることを、疑う: 右: br['name'] = 'Vasya' br['Phone:'] = '1234567890' など

関連する問題