Я делаю некоторый сценарий с mechanize.browser модулем.
одной из проблемы является вся другая вещь, в порядке, но когда отправляют () форму, это не работа,
таким образом, я был найден некоторой исходной частью подозрения.
в источнике HTML я был найден таким как следующее.
<form method="post" onsubmit="return loginCheck(this)" name="FRMLOGIN"/>
Я думаю, loginCheck (эта) проблема создания, когда отправляют форму.
но как обработать этот вид функции JavaScript с, механизируют модуль, таким образом, я могу
успешно отправьте форму, и может получить результат?
нумерация страниц является моим текущим источником сценария.
если кто-либо может помочь мне.. очень цените!!
# -*- coding: cp949-*-
import sys,os
import mechanize, urllib
import cookielib
from BeautifulSoup import BeautifulSoup,BeautifulStoneSoup,Tag
import datetime, time, socket
import re,sys,os,mechanize,urllib,time
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# Want debugging messages?
br.set_debug_http(True)
br.set_debug_redirects(True)
br.set_debug_responses(True)
# User-Agent (this is cheating, ok?)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6')]
br.open('http://user.buddybuddy.co.kr/Login/LoginForm.asp?URL=')
html = br.response().read()
print html
br.select_form(name='FRMLOGIN')
print br.viewing_html()
br.form['ID']='zero1zero2'
br.form['PWD']='012045'
br.submit()
print br.response().read()
вам потребуется либо не поддерживаемый модуль DOMForm , либо Spidermonkey ( http://pypi.python.org/pypi/python-spidermonkey ) для обработки javascript. Или вы выясняете, что делает loginCheck (), и выполняете его работу до отправки формы на python. Если loginCheck () просто проверяет очевидную достоверность данных для входа в систему, это должно быть довольно просто. Обратите внимание, что параметр действия указанного тега формы отсутствует. Вероятно, это указано в части javascript.
В зависимости от ваших намерений может быть проще работать только с urllib2. Вы можете предположить статический вид этой веб-страницы и просто опубликовать данные с помощью методов urllib2 и также получить результаты с их помощью.
onsubmit просто игнорируется Mechanize, интерпретация javascript не выполняется.
Вам нужно проверить, что loginCheck (); в некоторых ограниченных случаях (проверка) вы можете программно делать то, что делает javascript.
mechanize вообще не поддерживает Javascript. Если вам обязательно нужно запустить Javascript, обратите внимание на Selenium. Он предлагает привязку к python для управления настоящим, работающим браузером, таким как Firefox или IE.