使用抓取确认网站登录

时间:2018-02-14 04:03:02

标签: python-requests lxml

我正在尝试登录我的健身房并抓取数据,以便我可以为将来设置自动登录/预订。我是python的新手,我尝试了一些东西,我认为这是最接近的。我在网上找到了一个很好的例子但有问题。我认为登录失败使代码无法访问正确的页面进行刮擦。我使用XPath助手,它确认我的xpath是正确的但我的结果是空白的[] 请参阅下文..任何建议将不胜感激。

import requests
from lxml import html

USERNAME = "*****"
PASSWORD = "*****"
LOGIN_URL = "https://www.lafitness.com/Pages/login.aspx"
URL = "https://www.lafitness.com/Pages/RacquetballReservation.aspx"

def main():
    session_requests = requests.session()

# Get login csrf token
    result = session_requests.get(LOGIN_URL)
    tree = html.fromstring(result.text)
    authenticity_token = list(set(tree.xpath("//input[@name='__CSRFTOKEN']/@value")))[0]

# Create payload
    payload = {
        "ctl00$MainContent$Login1$txtUser": USERNAME,
        "ctl00$MainContent$Login1$txtPassword": PASSWORD,
        "__CSRFTOKEN": authenticity_token
     }

# Perform login
    result = session_requests.post(LOGIN_URL, data = payload, headers = dict(referer = LOGIN_URL))

# Scrape url
    result = session_requests.get(URL, headers = dict(referer = URL))
    tree = html.fromstring(result.content)
    bucket_names = tree.xpath('//*[@id="ddlDates"]')

    ok = result.ok

    print(ok, bucket_names)

if __name__ == '__main__':
    main()

我已经查找了几个尝试这样做的项目,但都没有成功。我添加了result.ok以查看它是否正确连接,它说它确实如此,但我读过它只是因为它说积极并不意味着网站正确登录。

感谢您的任何帮助/建议!

0 个答案:

没有答案