我的简单需求。
如何找到当前网页上不可见的元素?我猜style="visibility:hidden"
or style="display:none"
是隐藏元素的简单方法,但 BeautifulSoup 不知道它是否隐藏。
例如,HTML 是:
Textbox_Invisible1: <input id="tbi1" type="text" style="visibility:hidden">
Textbox_Invisible2: <input id="tbi2" type="text" class="hidden_elements">
Textbox1: <input id="tb1" type="text">
所以我首先担心的是 BeautifulSoup 无法找出上述文本框是否被隐藏:
# Python 2.7
# Import BeautifulSoup
>>> source = """Textbox_Invisible1: <input id="tbi1" type="text" style="visibility:hidden">
... Textbox_Invisible2: <input id="tbi2" type="text" class="hidden_elements">
... Textbox1: <input id="tb1" type="text">"""
>>> soup1 = BeautifulSoup(source)
>>> soup1.find(id='tb1').hidden
False
>>> soup1.find(id='tbi1').hidden
False
>>> soup1.find(id='tbi2').hidden
False
>>>
我唯一的问题是,有没有办法找出隐藏的元素?
(我们还必须考虑复杂的 HTML,其中的元素可能被隐藏)
美丽汤是一个html解析器,不是浏览器。它不知道页面应该如何呈现、计算 DOM 属性等,它只是检查尖括号的开始和结束位置。
如果您需要在运行时使用 DOM,那么最好使用浏览器自动化包,即启动浏览器,让浏览器使用页面,然后公开浏览器控件和计算出的 DOM。根据平台的不同,您有不同的选择。看一下这一页 http://wiki.python.org/moin/WebBrowserProgramming在 Python WIki 上了解想法,请查看 部分围绕 Web“库”和浏览器技术的 Python 包装器.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)