【问题标题】:Load entire html page in python在python中加载整个html页面
【发布时间】:2020-05-30 09:59:34
【问题描述】:

我需要将整个 html 页面存储在 str 变量中。 我正在这样做:

import requests
from bs4 import BeautifulSoup

url = my_url
response = requests.get(url)
page = str(BeautifulSoup(response.content))

这可行,但 my_url 中的页面不是“完整的”。这是一个网站,到最后,新的东西会加载,我需要所有的页面,而不仅仅是主要的可见部分。

有没有办法加载整个页面然后存储它?

我也尝试手动加载页面,然后查看源代码,但页面的最后部分仍然不可见。

或者,我想要的 my_url 页面中的所有链接都是其中的链接,所有链接都像:

my_url/something/first-post
my_url/something/second-post

有没有办法以另一种方式找到所有链接?所以,所有可能的以“my_url/something/”开头的url

提前致谢

【问题讨论】:

    标签: python beautifulsoup python-requests python-requests-html


    【解决方案1】:

    我认为您应该使用Selenium,然后向下滚动以获取整个页面。

    据我所知requests 无法处理动态页面。

    【讨论】:

      【解决方案2】:

      对于替代选项,您可以通过find_all 找到<a> tags

      links = soup.find_all('a')
      

      要从您开始,您可以使用以下内容

      result = [link for link  in links if link.startswith('my_url/something/')]
      

      【讨论】:

      • 不幸的是,这并没有看到隐藏内容(进入页面时出现的内容)
      • 如果它是动态加载的,将无法绕过它,然后模拟导致它通过 Selenium 加载的动作,例如。您仍然可以使用上述方法查找以特定字符串开头的链接。
      猜你喜欢
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多