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

使用python请求或类似模块登录www.virtualtrader.co.uk?,python,debugging,urllib2,mechanize,python-requests,Python,Debugging,Urllib2,Mechanize,Python Requests,我正在尝试使用python请求模块登录网站- 我在这方面的经验有限,因此希望能得到一些帮助 之前,我使用以下代码登录到类似的网站: import requests USERNAME = 'VALID EMAIL' PASSWORD = 'VALID PASSWORD' page = { 'index':'http://www.bullbearings.co.uk/', 'login':'http://www.bullbearings.co.uk/login.php',

我正在尝试使用python请求模块登录网站- 我在这方面的经验有限,因此希望能得到一些帮助

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

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

。。我曾尝试部署类似的代码来自动登录该站点,但迄今为止都没有成功。我修改后的代码如下所示-出于安全原因,我从每个示例中保留了个人信息-出于测试目的,可以在几分钟内打开帐户,或者可以将解决方案提交回本帖,我将亲自测试它是否有效并报告


尝试修改用于的代码

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
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请求库,但是如果您能够使用另一种方法解决这个问题,我很乐意进行更改

我理解这是一个非常具体的问题-对不起

提前感谢

这应该让您开始:

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

如果您需要更多帮助,请在此处留言。

也许更适合此任务?您是否能够提供代码示例?几小时后,我很乐意提供。谢谢,您还需要其他信息吗?您只想登录吗?谢谢回答,脚本工作正常;但是,我打算在raspberry pi上部署最终项目,因此将无法使用selenium页面上列出的任何浏览器。有没有一种方法可以避免这种情况的发生,而不必求助于其他模块,如mechanize或requests软件包?可以尝试远程插件吗;我以前希望使用请求或机械化模块。你能就此提供建议吗?谢谢,againI建议不要使用此请求。Mechanize可能还可以,但我认为它不支持DHTML/Ajax。下面是我的Mechanize代码及其结果,如果您能够仔细查看的话——没有错误,但也没有成功;-起初,我认为这是可行的,但我注意到在返回的源代码中有一个变量表示“var IsLoggedOn=false;”而且这个页面是不可访问的