2010-05-23 37 views
0

即時通訊製作一些簡單的python文章腳本,但效果不好。python urllib的帖子問題

有2部分必須登錄。

首次登錄使用'http://mybuddy.buddybuddy.co.kr/userinfo/UserInfo.asp'這一個。

和第二次登錄時使用「http://user.buddybuddy.co.kr/usercheck/UserCheckPWExec.asp

我可以登錄第一個登錄頁面,但我無法登錄第二頁的網站。

並返回一些錯誤'非法訪問'等。

我聽說這與一些cooke有關,但我不知道如何實現來解決這個問題。

如果任何人都可以幫助我非常感謝!謝謝!

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' 
+2

最大的問題是你的最後兩行'不同的是:打印 '錯誤' '。擺脫這些,你會有一些有用的信息,而不是吞嚥所有的例外。 – msw 2010-05-23 13:59:21

+0

我被刪除除了:打印'錯誤',但沒有發生 – paul 2010-05-23 23:51:57

回答

0

你不能使用硒?恕我直言,最好做到這一點自動化。

對於安裝使用:

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()