Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MechanicalSoup复杂的html表_Python_Html_Web Scraping_Python Requests_Mechanicalsoup - Fatal编程技术网

Python MechanicalSoup复杂的html表

Python MechanicalSoup复杂的html表,python,html,web-scraping,python-requests,mechanicalsoup,Python,Html,Web Scraping,Python Requests,Mechanicalsoup,我完全不喜欢机械组和网络垃圾。 我一直在分析一个html时间表,并将其制作成icalendar(ics)文件,以便在手机上使用。(我已经成功地做到了,耶) 现在为了让它工作,我下载了时间表网站的html,一旦我选择了我的时间表。现在我需要使用Python来实际导航到时间表 以下是我到目前为止的代码(我被卡住了,因为HTML太乱了,我不知道怎么做,MechanicalSoup的文档还没有那么大): 请参见此处的HTML:( 我想做以下工作: td class=“FilterPanel” #

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

现在为了让它工作,我下载了时间表网站的html,一旦我选择了我的时间表。现在我需要使用Python来实际导航到时间表


以下是我到目前为止的代码(我被卡住了,因为HTML太乱了,我不知道怎么做,MechanicalSoup的文档还没有那么大):

请参见此处的HTML:( 我想做以下工作:

    td class=“FilterPanel” #go to the table containing this td
    div id = pFilter  #set value to BYG 
    div id = pObject #set value to BAKINT-2l
    submit (which will redirect to the timetable i need)
并从提交的重定向下载html


非常感谢您的帮助!

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

在您的情况下,即使有一个有趣的布局,也只有一种形式,因此:

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

browser.launch_browser()

:-(.您可以通过自己创建缺少的控件来解决此问题。

“MechanicalSoup的文档还没有那么大”:当您发布问题时,这是非常正确的。现在情况有所不同:MechanicalSoup的文档还没有那么大):
browser.launch_browser()