使用python请求或类似模块登录www.virtualtrader.co.uk?

时间:2014-07-30 20:28:14

标签: python debugging urllib2 mechanize python-requests

我正在尝试使用python请求模块登录Virtual Trader网站 - 我在这个领域的经验有限,所以会感激一些帮助。

以前我使用以下代码登录类似的网站:

import requests

USERNAME = 'VALID EMAIL'
PASSWORD = 'VALID PASSWORD'

page = {
    'index':'http://www.bullbearings.co.uk/',
    'login':'http://www.bullbearings.co.uk/login.php',
    'trade':'http://www.bullbearings.co.uk/stock.trade.php?epic=',
    'portfolio':'http://www.bullbearings.co.uk/stock.portfolio.php'
    }

def login(access):    
    with requests.Session() as c:

        c.get(page['login'])

        login_data = dict(email = USERNAME, password = PASSWORD, submit = 'Login', cookie = 'yes')
        c.post(page['login'], data = login_data, headers = {'Referer': page['index']})
        source = c.get(page[access])

        print source.content


..我试图部署类似的代码来自动登录Virtual Trader网站,但到目前为止还没有成功。我的修改后的代码如下所示 - 出于安全原因,我隐瞒了每个示例中的个人信息 - 为了测试目的,可以在几分钟内打开帐户,或者可以将解决方案提交回这篇文章,我会随时待命测试它是否有效并报告。


尝试修改用于Virtual Trader

的代码
import requests

with requests.Session() as c:
    url = 'http://www.virtualtrader.co.uk/member/login.aspx'
    USERNAME = 'VALID USERNAME'
    PASSWORD = 'VALID PASSWORD'

    email  = 'ctl00$MiddleContent$LoginForm$txtEmail'
    password = 'ctl00$MiddleContent$LoginForm$txtPassword'


    c.get(url)

    login_data = dict(email = USERNAME , password = PASSWORD)
    c.post(url, data = login_data, headers = {'Referer': 'http://www.virtualtrader.co.uk'})
    page = c.get('http://www.virtualtrader.co.uk/member/personal.aspx')

    print page.content

这个打败了我! - 我真的很感激任何试图解决这个问题的帮助。 我个人更喜欢使用python请求库,但如果你能用替代方法解决这个问题,我很乐意改变。

我很欣赏这是一个非常具体的问题 - 对不起!
提前致谢

1 个答案:

答案 0 :(得分:0)

这应该让你开始:

from selenium import webdriver

USERNAME = 'VALID USERNAME'
PASSWORD = 'VALID PASSWORD'

email  = 'ctl00$MiddleContent$LoginForm$txtEmail'
password = 'ctl00$MiddleContent$LoginForm$txtPassword'
submit_id = 'ctl00_MiddleContent_LoginForm_cmdLogin'
driver = webdriver.Chrome() # could also use firefox, or a bunch of others listed on the homepage of selenium

driver.get('http://www.virtualtrader.co.uk/member/login.aspx')

login_field = driver.find_element_by_id(email)
password_field = driver.find_element_by_id(password)
submit_field = driver.find_element_by_id(submit_id)

login_field.send_keys(USERNAME)
password_field.send_keys(PASSWORD)
submit_field.click()

如果您想获得进一步的帮助,请在此处发表评论。