python urllib опубликовать вопрос - PullRequest
0 голосов
/ 23 мая 2010

я делаю какой-то простой скрипт на python post, но он не работает хорошо.

есть 2 части для входа в систему.

первый логин использует 'http://mybuddy.buddybuddy.co.kr/userinfo/UserInfo.asp' этот.

и второй логин использует 'http://user.buddybuddy.co.kr/usercheck/UserCheckPWExec.asp'

Я могу войти на первую страницу входа в систему, но не могу войти на сайт второй страницы.

и вернуть ошибку «незаконный доступ», такую ​​как.

Я слышал, что это связано с какой-то хитростью, но я не знаю, как реализовать эту проблему.

если кто-нибудь может помочь мне высоко ценится! Спасибо!

import re,sys,os,mechanize,urllib,time
import datetime,socket


params = urllib.urlencode({'ID':'ph896011', 'PWD':'pk1089' })
rq = mechanize.Request("http://mybuddy.buddybuddy.co.kr/userinfo/UserInfo.asp", params)
rs = mechanize.urlopen(rq)
data = rs.read() 

logged_fail = r';history.back();</script>'  in data                                             
if not logged_fail:
 print 'login success'
 try:
  params = urllib.urlencode({'PASSWORD':'pk1089'})
  rq = mechanize.Request("http://user.buddybuddy.co.kr/usercheck/UserCheckPWExec.asp", params )
  rs = mechanize.urlopen(rq)
  data = rs.read()
  print data
 except:
  print 'error'

1 Ответ

0 голосов
/ 03 апреля 2013

Вы не можете использовать селен?ИМХО, лучше с этим автоматизировать.

Для установки используйте:

pip install selenium

Пример:

from selenium import webdriver
browser = webdriver.Firefox()
# open site
browser.get('http://google.com.br')
# get page source
browser.page_source

Пример входа:

# different methods to get a html item
form = browser.find_element_by_tag_name('form')
username = browser.find_element_by_id('input_username')
password = browser.find_element_by_css_selector('input[type=password]')
username.send_keys('myUser')
password.send_keys('myPass')
form.submit()
...