我曾经有一个python脚本,使用Mechanize和BeautifulSoup正确地从下表中提取数据。但是,这个网站最近将表格的编码更改为javascript,我在使用它时遇到了麻烦,因为桌子上有多个页面。
例如,在上面的链接中,我如何从表格的第1页和第2页获取数据? FWIW,URL不会改变。
答案 0 :(得分:4)
你最好的选择是运行一个无头浏览器,例如phantomjs,它理解JavaScript,DOM等所有复杂功能,但你必须用Javascript编写代码,这样做的好处就是你可以做任何你想做的事情,解析使用BeautifulSoup的html很酷但是长期头疼。那么为什么当你可以访问DOM时刮掉
答案 1 :(得分:0)
Mechanize不会处理javascript。
您可以观察单击按钮时所做的请求(使用Firefox中的Firebug或Chrome中的开发人员工具)。比试图对页面后面运行的javascript进行反向工程,并尝试使用你的python代码做类似的事情,为此看看Spidermonkey或
尝试使用Selenium
。
Selenium是一个功能测试框架,可以自动执行浏览器以执行某些操作,从而测试代码的基本操作