Python urllib POST 问题
我正在写一个简单的Python脚本来进行POST请求,但它运行得不太好。
这个登录过程分为两个部分。
第一个登录是通过这个链接:'http://mybuddy.buddybuddy.co.kr/userinfo/UserInfo.asp'。
第二个登录是通过这个链接:'http://user.buddybuddy.co.kr/usercheck/UserCheckPWExec.asp'。
我可以成功登录第一个页面,但无法登录第二个页面。
它返回了一个错误,提示“非法访问”。
我听说这可能和某些cookie有关,但我不知道该怎么做才能解决这个问题。
如果有人能帮我,我会非常感激!!谢谢!
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
你不能使用selenium吗?在我看来,用这个来做自动化会更好。
安装时可以使用:
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()