почему я не могу зайти на сайт используя python в методе post - PullRequest
0 голосов
/ 28 марта 2011

это мой код для входа на сайт с использованием python:

import urllib2, cookielib
cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
content = urllib2.urlopen('http://192.168.1.200/order/index.php?op=Login&ac=login&userName=%E8%B5%B5%E6%B1%9F%E6%98%8E&userPwd=123').read()

print content

это шоу:

{"title":"login error","body":"username or password error","data":{"status":1}}

но имя пользователя и пароль верны, я могу войти на этот сайт, используя firefox,

так что я могу сделать,

спасибо

Ответы [ 2 ]

3 голосов
/ 28 марта 2011

Вы делаете запрос GET. Чтобы сделать POST-запрос, используйте:

content = urllib2.urlopen(
    'http://192.168.1.200/order/index.php",
    'op=Login&ac=login&userName=%E8%B5%B5%E6%B1%9F%E6%98%8E&userPwd=123').read()

Метод urlopen отправляет запрос POST, если ему переданы данные (второй аргумент).

0 голосов
/ 28 марта 2011

Попробуйте использовать менеджер паролей:

из здесь :

# create a password manager
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.
# If we knew the realm, we could use it instead of ``None``.
top_level_url = "http://example.com/foo/"
password_mgr.add_password(None, top_level_url, username, password)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(handler)

# use the opener to fetch a URL
opener.open(a_url)

# Install the opener.
# Now all calls to urllib2.urlopen use our opener.
urllib2.install_opener(opener)
...