如何在不使用浏览器的情况下获取此表单数据

时间:2015-12-28 08:30:00

标签: python web-services autologin

我是python的新手,并认为最好的学习方法是通过练习,这是我的第一个项目。

所以有这个梦幻足球网站。我的目标是创建登录到站点的脚本,自动创建预选团队并提交它。

我已设法提交团队成员。

当我添加团队成员时,此数据会发送到服务器:

https://i.gyazo.com/e7e6f82ca91e19a08d1522b93a55719b.png

当我按下保存此列表时,会发送此数据:

https://i.gyazo.com/546d49d1f132eabc5e6f659acf7c929e.png

代码:

import requests

with requests.Session() as c:
    gameurl = 'here is link where data is sent'
    BPL = ['5388', '5596', '5481', '5587', 
    '5585', '5514', '5099', '5249', '5566', '5501', '5357']
    GID = '168'
    UDID = '0'
    ACT = 'draft'
    ACT2 = 'save_draft'
    SIGN = '18852c5f48a94bf3ee58057ff5c016af'

    # eleven of those with different BPL since 11 players needed:
    c.get(gameurl)
    game_data = dict(player_id = BPL[0], action = ACT, id = GID)
    c.post(gameurl, data = game_data)

    # now I need to submit my list of selected players:
    game_data_save = dict( action = ACT2, id = GID, user_draft_id = UDID, sign = SIGN)
    c.post(gameurl, data = game_data_save)

这段代码工作得很好,但问题是,'SIGN'对于每个单独的游戏都是唯一的,我不知道如何在不使用Chromes inspect选项的情况下获取这些数据。

如何才能让这些数据只运行python代码?

2 个答案:

答案 0 :(得分:0)

因为你说你可以使用devtools找到它,我假设SIGN写在DOM的某个地方。 在这种情况下,您可以使用requests.get().text获取网页的HTML,并使用lxmlHTMLParser

等工具对其进行解析

答案 1 :(得分:0)

通过发布没有' SIGN'的所有数据来解决作为回报,我得到了#SIGN'在html。