使用BeautifulSoup获取由js代码填充的数据

时间:2016-07-13 09:09:10

标签: javascript html python-3.x beautifulsoup

我编写了一个python(版本:3.4.3)脚本,其中我使用BeautifulSoup从html页面获取内容,在该页面中有一个段落标记,最初没有内容,但是我在窗口上添加了一个事件监听器,它将在该段落标记中添加一些内容。

Python script:

    from bs4 import BeautifulSoup
    import requests
    import os
    from urllib.parse import urljoin
    def url():
     res = requests.get('http://localhost:8000/a.html')
     soup = BeautifulSoup(res.text);
     print(soup.p.get_text());


Html file:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    x.innerHTML = "It worked";
}
window.addEventListener('load',getLocation);
</script>

</body>
</html>

问题是python脚本的最后一行打印一个空行而不是数据 我在该段中动态添加的内容。

我认为问题出在addEventListener上,因为我实际上并没有打开页面。

有没有人可以提供另一种方法来从标签中获取内容,其中内容是通过一些javascript代码添加的(使用beautifulsoup)?

0 个答案:

没有答案