我正试图从以下网站获取一些数据
http://www.pro-football-reference.com/teams/crd/2000_roster.htm
特别是,我想要清除名册表中的数据。表格标题为“CSV”的标题处有一个红色链接,如果单击它,页面将以csv格式加载表格信息。此链接的HTML代码是
<span tip="Get a widget to embed this table on your site" class="tooltip" onclick="sr_display_embed(this,'games_played_team'); try { pageTracker._trackEvent('Tool','Action','Embed'); } catch (err) {}">Embed</span>
我假设函数table2csv()正在执行。我没有任何Web开发经验,所以我甚至不确定这个函数是什么,我假设它是JAVA。我正在寻找一些关于如何使用BeautifulSoup自动执行此函数然后在函数执行后出现的HTML分析树中抓取文本的指导。谢谢。
答案 0 :(得分:1)
页面执行的代码是JavaScript更具体的AJAX,我建议你使用Selenium来完成这项工作,主要是因为这个浏览器用这个你可以让程序在这个链接中点击并加载AJAX打电话然后废弃内容。这是更准确的解决方案。 Selenium可用于许多语言,如JAVA,C#,Python等。
如果您不想使用Selenium,我认为您可以看到XHTML请求浏览器并直接获取CSV。您可以使用Chrome按F12查看开发人员工具或安装Firebug for Firefox,这些都在标记网络中。
答案 1 :(得分:0)
我对BeautifulSoup并不熟悉并且对Python知之甚少,但我已经涉足过试图在java和JSoup中搜索profootball引用,然后再用HtmlUnit ......
JSoup,可能还有BeautifulSoup(根据我最近的谷歌搜索,它们相似),不是为了调用javascript函数而设计的。
此外,调用CSV链接时,页面不会调用网络请求。因此,没有可以调用的已知URL来获取CSV格式的数据。 javascript中的table2csv函数从html表数据创建csv数据。
你最好的选择是像javascript table2csv函数那样做。获取可通过BeautifulSoup获取的表数据,并直接解析。