def run(self): print "Posting comment %d!" % counter req = urllib2.Request( "http://comment.myspace.com/index.cfm?fuseaction=user.viewProfile_commentForm&friendID=%s" % friendID) res = opener.open(req) forms = ClientForm.ParseResponse(res) form = forms[1] form["ctl00$cpMain$postComment$commentTextBox"] = message res = opener.open(form.click()) forms = ClientForm.ParseResponse(res) form = forms[1] opener.open(form.click())
def run(self): global success value = getword() try: print "-"*12 print "User:"******"Password:"******"User-agent","Mozilla/5.0 (compatible)")] ClientCookie.install_opener(opener) fp = ClientCookie.urlopen("https://www.gmail.com/") forms = ClientForm.ParseResponse(fp) form = forms[0] form["Email"] = sys.argv[1] form["Passwd"] = value fp = ClientCookie.urlopen(form.click()) site = fp.readlines() for line in site: if re.search("Gmail - Inbox", line): print "\tSuccessful Login:", value success = value sys.exit(1) fp.close() except(socket.gaierror), msg: pass
def run(self): global success value = getword() try: print "-" * 12 print "User:"******"Password:"******"User-agent", random.sample(headers, 1)[0])] ClientCookie.install_opener(opener) fp = ClientCookie.urlopen(sys.argv[1]) forms = ClientForm.ParseResponse(fp) form = forms[0] form["user"] = sys.argv[2] form["pass"] = value fp = ClientCookie.urlopen(form.click()) site = fp.readlines() for line in site: if re.search("Login failed.", line.lower()) != None: print "\tSuccessful Login:", value success = value sys.exit(1) fp.close() except (socket.gaierror, urllib2.HTTPError), msg: print msg pass
def run(self): global success value = getword() try: print "-" * 12 print "User:"******"Password:"******"User-agent", random.sample(headers, 1)[0])] ClientCookie.install_opener(opener) fp = ClientCookie.urlopen(sys.argv[1]) forms = ClientForm.ParseResponse(fp) form = forms[0] form["username"] = sys.argv[2] form["password"] = value fp = ClientCookie.urlopen(form.click()) site = fp.readlines() for line in site: if re.search("invalid password", line.lower()) != None: print "\tSuccessful Login:"******"The maximum number of 5 login attempts has been exceeded.", line): print "Attempts exceeded" fp.close() except (socket.gaierror), msg: pass
class FormInteract: time_history = 10 def __init__(self, url, debug=False, use_lynx=True): self.url = url self.default_form = None self.forms = None self.count = 0 self.times = [] self.debug = debug self.use_lynx = use_lynx def get(self): self._get(self.url) def _get(self, req): starttime = time.time() try: self.response = ResponseRecorder(ClientCookie.urlopen(req)) except urllib2.HTTPError, e: # urllib2.HTTPError instances are also Response objects self.response = ResponseRecorder(e) self.response.read() try: url = req.get_full_url() except AttributeError: url = req raise InteractError('%s: %s' % (url, e)) self.forms = ClientForm.ParseResponse(self.response) self.default_form = 0 interact_time = time.time() - starttime self.times = [interact_time] + self.times[:self.time_history - 1] # info(' interaction took %.3fs' % interact_time) # XXX self.count += 1
def get_forms(self, url=None, *args, **kw): posturl = url or self.get_url() fifo = StringIO() fifo.writelines(self.get_html(url, *args, **kw)) fifo.seek(0) forms = ClientForm.ParseFile(fifo, posturl, backwards_compat=False) return [FORM(self, form) for form in forms]
def get_forms(self): """Returns all forms in the current document. The returned form objects implement the ClientForm.HTMLForm interface. """ if self._forms is None: import ClientForm self._forms = ClientForm.ParseResponse(self.get_response(), backwards_compat=False) return self._forms
def _send_email_form(self, to, subject, body, cc, bcc, callback=None): cfg = self.HM.Network.configuration import ClientForm form = ClientForm.HTMLForm(util.UrlQuery(util.httpjoin( self.inbox_url, '/mail/SendMessageLight.aspx'), _ec=1, n=ntok()), method="POST", request_class=self.RequestFactory) form.new_control('hidden', '__VIEWSTATE', {'value': ''}) form.new_control('hidden', cfg.CanaryToken, {'value': cfg.CanaryValue}) form.new_control('hidden', 'MsgPriority', {'value': '0'}) form.new_control('hidden', 'ToolbarActionItem', {'value': 'SendMessage'}) form.new_control('hidden', 'InfoPaneActionItem', {'value': ''}) form.new_control('hidden', 'folderCache', {'value': ''}) form.new_control('hidden', 'fDraftId', {'value': ''}) form.new_control('hidden', 'fMsgSentState', {'value': 'NOACTION'}) form.new_control('hidden', 'IsSpellChecked', {'value': 'false'}) form.new_control('hidden', 'fFrom', {'value': self.username}) form.new_control('hidden', 'cpselectedAutoCompleteTo', {'value': '[]'}) form.new_control('hidden', 'fTo', {'value': '"" <%s>;' % to}) form.new_control('hidden', 'cpselectedAutoCompleteCc', {'value': ''}) form.new_control('hidden', 'fCc', {'value': cc}) form.new_control('hidden', 'cpselectedAutoCompleteBcc', {'value': ''}) form.new_control('hidden', 'fBcc', {'value': bcc}) form.new_control('hidden', 'fSubject', {'value': subject}) form.new_control('hidden', 'fAttachment_data', {'value': ''}) form.new_control('hidden', 'isFirstPL', {'value': ''}) form.new_control('hidden', 'RTE_MessageType', {'value': 'PlainText'}) form.new_control('hidden', 'fMessageBody', {'value': body}) request = form.click() log.info('Request obj = %r, vars = %r', request, vars(request)) def check_success_send(resp): if resp is None: # assume it worked? return callback.success() data = resp.read() if 'SentMailConfirmation' in data: log.info('sent email!') callback.success() else: log.info('failed to send email: %r', data) callback.error() def check_error_send(exc): log.info('failed to send email: %r', exc) callback.error() util.threaded(self.open)(request, success=check_success_send, error=check_error_send)
def response(url): response = urllib2.urlopen(urllib2.Request(url)) forms = ClientForm.ParseResponse(response) response.close() form = forms[1] #print form nt = raw_input("Numéro de table : ") form["id_table"] = nt year = raw_input("Année d'obtention : ") form["annee"] = [year] #request2= form.click() response2 = urllib2.urlopen(form.click()) return urllib2.urlopen(response2.geturl())
def _do_set(resp): if not self.is_logged_in(): callback.error(Exception("not logged in")) resp.seek(0) form = ClientForm.ParseResponse(resp)[0] form.set_value(status, 'us') form.set_value(mood, 'mn') p = net.UrlQuery.parse(form.action) p['query'].pop('bfd', None) form.action = net.UrlQuery.unparse(**p) self.request('set_status', request=form.click(), callback=callback)
def _submit_login_form(self, resp): resp.seek(0) self._login_resp = resp forms = ClientForm.ParseResponse(resp) form = None for form in forms: if form.name == 'aspnetForm': break if form is None: return form.set_value(self.username, 'emailTextBox') form.set_value(self.pw_provider(), 'passwordTextBox') self.request('login', request=form.click())
def forms(self): import ClientForm encoding = self.encoding try: forms = ClientForm.ParseResponseEx( self._response, select_default=self.select_default, form_parser_class=self.form_parser_class, request_class=self.request_class, encoding=encoding, _urljoin=_rfc3986.urljoin, _urlparse=_rfc3986.urlsplit, _urlunparse=_rfc3986.urlunsplit, ) except ClientForm.ParseError, exc: raise ParseError(exc)
def __init__(self, username, password): self.username = username self.password = password self.url = 'http://www.reddit.com/saved' cookie_jar = cookielib.LWPCookieJar() cookie_jar = urllib2.HTTPCookieProcessor(cookie_jar) # debugger = urllib2.HTTPHandler(debuglevel=1) opener = urllib2.build_opener(cookie_jar) urllib2.install_opener(opener) response = urllib2.urlopen(self.url) forms = ClientForm.ParseResponse(response, backwards_compat=False) form = forms[1] try: form['user'] = self.username form['passwd'] = self.password except Exception, e: print('Got an error: \n"%s"' % e) exit()
def logIn(self): """ Logs in to private archives using the supplied email and password. Stores the cookie so we can continue to get subsequent pages. """ cookieJar = mechanize.CookieJar() opener = mechanize.build_opener( mechanize.HTTPCookieProcessor(cookieJar)) opener.addheaders = [("User-agent", "Mozilla/5.0 (compatible)")] mechanize.install_opener(opener) self.message('Logging in to ' + self.list_url) fp = mechanize.urlopen(self.list_url) forms = ClientForm.ParseResponse(fp, backwards_compat=False) fp.close() form = forms[0] form['username'] = self.username form['password'] = self.password fp = mechanize.urlopen(form.click()) fp.close()
#!/usr/bin/env python import ClientForm import urllib2 request = urllib2.Request( "http://wwwsearch.sourceforge.net/ClientForm/example.html") response = urllib2.urlopen(request) forms = ClientForm.ParseResponse(response, backwards_compat=False) response.close() ## f = open("example.html") ## forms = ClientForm.ParseFile(f, "http://example.com/example.html", ## backwards_compat=False) ## f.close() form = forms[0] print form # very useful! # A 'control' is a graphical HTML form widget: a text entry box, a # dropdown 'select' list, a checkbox, etc. # Indexing allows setting and retrieval of control values original_text = form["comments"] # a string, NOT a Control instance form["comments"] = "Blah." # Controls that represent lists (checkbox, select and radio lists) are # ListControl instances. Their values are sequences of list item names. # They come in two flavours: single- and multiple-selection: form["favorite_cheese"] = ["brie"] # single form["cheeses"] = ["parmesan", "leicester", "cheddar"] # multi # equivalent, but more flexible: form.set_value(["parmesan", "leicester", "cheddar"], name="cheeses")
import ClientForm import urllib2 request = urllib2.Request("http://jamez.dyndns.org/?p=custom&sub=upload") response = urllib2.urlopen(request) forms = ClientForm.ParseResponse(response, backwards_compat=False) response.close() ## f = open("example.html") ## forms = ClientForm.ParseFile(f, "http://example.com/example.html", ## backwards_compat=False) ## f.close() form = forms[0] print form # very useful! # A 'control' is a graphical HTML form widget: a text entry box, a # dropdown 'select' list, a checkbox, etc. # Indexing allows setting and retrieval of control values ## original_text = form["comments"] # a string, NOT a Control instance ## form["comments"] = "Blah." # Controls that represent lists (checkbox, select and radio lists) are # ListControl instances. Their values are sequences of list item names. # They come in two flavours: single- and multiple-selection: ## form["favorite_cheese"] = ["brie"] # single ## form["cheeses"] = ["parmesan", "leicester", "cheddar"] # multi # equivalent, but more flexible: ## form.set_value(["parmesan", "leicester", "cheddar"], name="cheeses") # Add files to FILE controls with .add_file(). Only call this multiple # times if the server is expecting multiple files.
name, base = name[1:], 16 uc = unichr(int(name, base)) if encoding is None: return uc else: try: repl = uc.encode(encoding) except UnicodeError: repl = "&#%s;" % data return repl # bizarre import gymnastics for bundled BeautifulSoup import _beautifulsoup import ClientForm RobustFormParser, NestingRobustFormParser = ClientForm._create_bs_classes( _beautifulsoup.BeautifulSoup, _beautifulsoup.ICantBelieveItsBeautifulSoup) # monkeypatch sgmllib to fix http://www.python.org/sf/803422 :-( sgmllib.charref = re.compile("&#(x?[0-9a-fA-F]+)[^0-9a-fA-F]") class MechanizeBs(_beautifulsoup.BeautifulSoup): _entitydefs = htmlentitydefs.name2codepoint # don't want the magic Microsoft-char workaround PARSER_MASSAGE = [(re.compile('(<[^<>]*)/>'), lambda (x): x.group(1) + ' />'), (re.compile('<!\s+([^<>]*)>'), lambda (x): '<!' + x.group(1) + '>')] def __init__(self, encoding, text=None,
form["ctl00$cpMain$postComment$commentTextBox"] = message res = opener.open(form.click()) forms = ClientForm.ParseResponse(res) form = forms[1] opener.open(form.click()) # login opener = urllib2.build_opener(urllib2.HTTPCookieProcessor()) opener.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')] urllib2.install_opener(opener) req = urllib2.Request( "http://login.myspace.com/index.cfm?fuseaction=login.process") res = opener.open(req) forms = ClientForm.ParseResponse(res) form = forms[1] form["email"] = email form["password"] = password opener.open(form.click()) # post comment counter = 0 while 1: try: if threading.activeCount() < thread_limit: print counter postComment().start() counter += 1 sys.stdout.write("\r%d Comments Posted." % counter) sys.stdout.flush()
uc = chr(int(name, base)) if encoding is None: return uc else: try: repl = uc.encode(encoding) except UnicodeError: repl = "&#%s;" % data return repl # bizarre import gymnastics for bundled BeautifulSoup from . import _beautifulsoup from . import ClientForm RobustFormParser, NestingRobustFormParser = ClientForm._create_bs_classes( _beautifulsoup.BeautifulSoup, _beautifulsoup.ICantBelieveItsBeautifulSoup ) # monkeypatch sgmllib to fix http://www.python.org/sf/803422 :-( import sgmllib sgmllib.charref = re.compile("&#(x?[0-9a-fA-F]+)[^0-9a-fA-F]") class MechanizeBs(_beautifulsoup.BeautifulSoup): _entitydefs = html.entities.name2codepoint # don't want the magic Microsoft-char workaround PARSER_MASSAGE = [(re.compile('(<[^<>]*)/>'), lambda x:x.group(1) + ' />'), (re.compile('<!\s+([^<>]*)>'), lambda x:'<!' + x.group(1) + '>') ] def __init__(self, encoding, text=None, avoidParserProblems=True,
dir_name = "" local_dir_state = False # #if len(sys.argv)==2: # local_dir_state=True # dir_name=sys.argv[1] if (local_dir_state == False): #login #dir = os.path.dirname("/home/ijij41/clawler/") #os.chdir(dir) dir = os.path.dirname("/archive/web/html/ubi/") os.chdir(dir) html = open('login.asp') forms = ClientForm.ParseFile( html, 'http://www.u-express.com/login/LoginProc.asp') form = forms[0] #print form form['id'] = 'dream2011' form['pwd'] = 'dream' request = form.click() response = urllib2.urlopen(request, timeout=5) #print response.read() #get all information for kiosk_num in kiosk_list.keys(): locker_info[kiosk_num] = getKioskData(kiosk_num) standard_date = datetime.datetime.now() oneday_before = standard_date - datetime.timedelta(days=1)