首页 > 解决方案 > 使用 python-mechanize 找不到表单名称

问题描述

我刚开始玩python。最近我偶然发现了网络抓取,我认为制作 Kahoot ( https://kahoot.it/ ) 机器人并不难。你可能知道也可能不知道我在说什么。现在这不重要了。我需要创建一个程序来填写游戏 ID,然后填写昵称,但是当我尝试运行该程序时出现错误。

mechanize._mechanize.FormNotFoundError:没有匹配名称“gameId”的表单

import re
import config

from mechanize import Browser

br = Browser()

br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Firefox')]

br.open ("https://kahoot.it/")
br.select_form('gameId')
br.form['game-pin-input'] = '6105440'

这是表格。

<form action="#">
<input name="gameId" type="tel" placeholder="Game PIN" id="game-input" data-functional-selector="game-pin-input" class="sc-dlfnbm lflLbn" autocomplete="off" value="" aria-expanded="false">
<button type="submit" value="Submit" class="enter-button__EnterButton-sc-1o9b9va-0 kfzgPK" data-functional-selector="join-game-pin">Enter</button>
</form>

我什至尝试使用脚本查找表单名称,但没有得到回报。

import os, subprocess
import re
import mechanize
from bs4 import BeautifulSoup

br = mechanize.Browser()

br.set_handle_robots(False) 
br.addheaders = [('User-agent', 'Firefox')]

br.open ("https://kahoot.it/")
for form in br.forms():
    print (form.name)

请记住,这是我第一次处理 html,而且我没有任何经验。谢谢你。

标签: pythonhtmlweb-scrapingmechanize-python

解决方案


推荐阅读