使用Ghost.py python包登录facebook

使用Ghost.py python包登录facebook,python,facebook,ghost.py,Python,Facebook,Ghost.py,任务是使用webengine登录facebook页面。我已经选择了Ghost.py。安装pySide、Flask和paste模块,并最终使用命令“pip install Ghost.py”获得Ghost.py。 我的登录脚本很简单: from ghost import Ghost ghost = Ghost() session = ghost.start() page, resources = session.open('https://www.facebook.com/login.php')

任务是使用webengine登录facebook页面。我已经选择了Ghost.py。安装pySide、Flask和paste模块,并最终使用命令“pip install Ghost.py”获得Ghost.py。 我的登录脚本很简单:

from ghost import Ghost
ghost = Ghost()
session = ghost.start()
page, resources = session.open('https://www.facebook.com/login.php')

result, resources = session.set_field_value("input[id=email]", 'email')
result, resources = session.set_field_value("input[id=pass]", 'passssss')

page, resources = session.call("form", "submit", expect_loading=True)
session.capture_to('I:\\beer.png')
但当我使用windows PC时,我会在facebook页面上看到“在浏览器中启用cookie”消息。当我使用装有fedora的笔记本电脑时,我成功登录。 有什么区别?如何解决这个问题?
我猜这是我的windows PC上的旧webkit版本。

此时,我可以使用下面的代码在我的windows PC上登录Facebook。任何时候,由于从他们的终端升级而改变,然后改变受影响的部分。干杯

from ghost import Ghost, Session

ghost = Ghost()
USERAGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

with ghost.start():
    session = Session(ghost, download_images=False, display=True, user_agent=USERAGENT)
    page, rs = session.open("https://m.facebook.com/login.php", timeout=120)
    assert page.http_status == 200

    session.evaluate("""
    document.querySelector('input[name="email"]').value = 'email@email.com';
    document.querySelector('input[name="pass"]').value = 'email-password';
    """)

    session.evaluate("""document.querySelector('input[name="login"]').click();""",
                 expect_loading=True)

    """
    import codecs

    with codecs.open('fb.html', encoding='utf-8', mode='w') as f:
       f.write(session.content)
    """

    # session.save_cookies('fbookie')
    session.capture_to(path='fbookie.png')

    # gracefully clean off to avoid errors
    session.webview.setHtml('')
    session.exit()

此时,我可以使用下面的代码在我的Windows PC上登录Facebook。任何时候,由于从他们的终端升级而改变,然后改变受影响的部分。干杯

from ghost import Ghost, Session

ghost = Ghost()
USERAGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

with ghost.start():
    session = Session(ghost, download_images=False, display=True, user_agent=USERAGENT)
    page, rs = session.open("https://m.facebook.com/login.php", timeout=120)
    assert page.http_status == 200

    session.evaluate("""
    document.querySelector('input[name="email"]').value = 'email@email.com';
    document.querySelector('input[name="pass"]').value = 'email-password';
    """)

    session.evaluate("""document.querySelector('input[name="login"]').click();""",
                 expect_loading=True)

    """
    import codecs

    with codecs.open('fb.html', encoding='utf-8', mode='w') as f:
       f.write(session.content)
    """

    # session.save_cookies('fbookie')
    session.capture_to(path='fbookie.png')

    # gracefully clean off to avoid errors
    session.webview.setHtml('')
    session.exit()

要使用上面的iChux解决方案登录桌面,请按以下方式进行调整:

from ghost import Ghost, Session

ghost = Ghost()
USERAGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

with ghost.start():
    session = Session(ghost, download_images=False, display=True, user_agent=USERAGENT)
    page, rs = session.open("https://www.facebook.com/?stype=lo&jlou=AfeuEMqFUkvZMOq7J0MmLJ6USegaIUsBJ5NAu-Qs3_JCE6MOHJGbiY-017Ob9CQCLUyUZ43Yuu2Etp091voL7O26&smuh=61591&lh=Ac_ChjmeXXM3DLIs", timeout=120)
    assert page.http_status == 200

    session.evaluate("""
    document.querySelector('input[name="email"]').value = 'email';
    document.querySelector('input[name="pass"]').value = 'password';
    """)

    session.evaluate("""document.querySelector('#loginbutton').click();""",
                 expect_loading=True)


    import codecs

    with codecs.open('fb.html', encoding='utf-8', mode='w') as f:
       f.write(session.content)


    # session.save_cookies('fbookie')
    #session.capture_to(path='fbookie.png')

    # gracefully clean off to avoid errors
    session.webview.setHtml('')
    session.exit()

要使用上面的iChux解决方案登录桌面,请按以下方式进行调整:

from ghost import Ghost, Session

ghost = Ghost()
USERAGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

with ghost.start():
    session = Session(ghost, download_images=False, display=True, user_agent=USERAGENT)
    page, rs = session.open("https://www.facebook.com/?stype=lo&jlou=AfeuEMqFUkvZMOq7J0MmLJ6USegaIUsBJ5NAu-Qs3_JCE6MOHJGbiY-017Ob9CQCLUyUZ43Yuu2Etp091voL7O26&smuh=61591&lh=Ac_ChjmeXXM3DLIs", timeout=120)
    assert page.http_status == 200

    session.evaluate("""
    document.querySelector('input[name="email"]').value = 'email';
    document.querySelector('input[name="pass"]').value = 'password';
    """)

    session.evaluate("""document.querySelector('#loginbutton').click();""",
                 expect_loading=True)


    import codecs

    with codecs.open('fb.html', encoding='utf-8', mode='w') as f:
       f.write(session.content)


    # session.save_cookies('fbookie')
    #session.capture_to(path='fbookie.png')

    # gracefully clean off to avoid errors
    session.webview.setHtml('')
    session.exit()

facebook桌面(即www.facebook.com)是否也可以使用此地址?基本上,在完成移动身份验证后,请更改回桌面地址。检查这是否适用于你。facebook桌面(即www.facebook.com)是否也可以使用此功能?基本上,在完成移动身份验证后,请更改回桌面地址。看看这对你是否有效。