如何使用python3和beautifulsoup从<a href="#" onclick="?"

时间:2016-01-05 16:35:50

标签: python-3.x beautifulsoup

="" I'm parsing http://www.treccani.it/lingua_italiana/sinonimi_regionali/获取链接。我已经解析了第一页,我需要转到第二页,第三页等等。 通过按钮(图像)移动到另一页:

<div class="next">
    <a href="#" onClick="doSearch(1, 4, 37); return false;" title="Pagina successiva">
        <img src="/export/system/modules/it.banzai.treccani.portale3/resources/images/arrow-right.png" />
    </a>
</div>

请告诉我,如何获取转到下一页的链接?或者如何使用python在页面之间移动?

2 个答案:

答案 0 :(得分:1)

我认为你需要一个Javascript引擎,而不是美丽的汤。

一种好方法是通过Selenium使用浏览器自动化。除非你想猜测 - 因为你必须知道Excess work done on this call (perhaps wrong Dfun type). Run with full_output = 1 to get quantitative information. 函数实际上在做什么,如果他们改变了Javascript,那么你的代码将不再符合你的期望。

答案 1 :(得分:1)

使用BeautifulSoup的问题是,如果链接不在html中,它会返回一个静态页面,你无法使用BeautifulSoup获取它,因为它只是一个解析器并且不运行页面。

正如在其他答案中所提到的,使用它的一个好方法是selenium,你也可以尝试找到doSearch JavaScript解决它正在做什么在你的python端复制它这看起来有点凌乱虽然。在查看doSearch函数后,selenium似乎是你最好的镜头。