机械组合复杂的html表

2024-09-27 22:20:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我完全不喜欢机械组和网络垃圾。 我一直致力于解析一个html时间表,并将其制作成icalendar(ics)文件,以便在移动设备上使用。(我成功地做到了,耶)。在

现在为了让它工作起来,我在选择了我的时间表后下载了时间表站点的html。现在我需要使用Python导航到时间表。在

以下是我目前为止的代码(我被卡住了,因为HTML太乱了,我不知道如何去做,而且MechanicalGroup的文档还没有那么大):

    import argparse
    import mechanicalsoup
    from getpass import getpass
    browser = mechanicalsoup.StatefulBrowser(
        soup_config={'features': 'lxml'},
        raise_on_404=True,
        user_agent='MyBot/0.1: mysite.example.com/bot_info',
     )
    browser.open("http://keaplan.kea.dk/sws/prodE2017/default.aspx")
    browser.select_form(WHAT TO SELECT :D)

请参见以下HTML:(http://keaplan.kea.dk/sws/prodE2017/default.aspx 我想做的是:

^{pr2}$

并从提交的重定向下载html。在

我们衷心感谢你的帮助!在


Tags: importbrowserhttpdefaulthtml时间表dkmechanicalsoup
1条回答
网友
1楼 · 发布于 2024-09-27 22:20:30

select_form的参数是CSS选择器。如果您只有一个表单,那么"form"就可以做到这一点(MechanicalSoup的下一个版本将把它作为默认参数)。否则,使用浏览器的开发工具,例如Firefox具有右键单击->检查元素->右键单击->复制->CSS选择器,这可能是一个很好的起点。在

在你的情况下,即使有一个有趣的布局,只有一个形式,所以:

browser.select_form("form")

不幸的是,您所指向的页面部分是用JavaScript生成的(您要搜索的select元素没有出现在通过解析页面获得的soup对象中)。查看MechanicalSoup从您的页面中看到了什么

^{pr2}$

:-(。您可以通过使用new_control创建丢失的控件来解决此问题。在

相关问题 更多 >

    热门问题