【问题标题】:Reading data from url where html page doesn't display it从 html 页面不显示的 url 读取数据
【发布时间】:2020-05-20 20:18:03
【问题描述】:

我正在尝试以下代码:

import sys
if __name__ == '__main__':
    link = "https://bibles.org/bible/555fef9a6cb31151-01/3JN.1"
    import requests
    from bs4 import BeautifulSoup

    s = requests.session()
    r = s.get(link)
    soup = BeautifulSoup(r.text, 'html.parser')
    print(soup.prettify())

但是我看不到网页的内容。如何提取它们?

【问题讨论】:

    标签: beautifulsoup python-3.5


    【解决方案1】:

    您只能使用 requests + bs4 抓取您在页面源代码中看到的内容(转到view-source:https://bibles.org/bible/555fef9a6cb31151-01/3JN.1)。

    您尝试抓取的页面是一个动态 Web 应用程序,之后会使用 JS + XHR 加载文本。这意味着您需要一个浏览器 + selenium[0] 来加载页面,并执行加载内容所需的任何 JS。当页面内容被填充后,就可以得到实际的 HTML,并使用 bs4 来提取文本。

    所以,请阅读如何使用 Selenium 和 python 进行抓取。您还需要使用 waits[1] 来等待适当的时间,直到页面达到您想要的状态(文本被添加到页面中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多