【问题标题】:How can I get the code from the "View source" on the site page using BS4 or another library?如何使用 BS4 或其他库从站点页面上的“查看源代码”获取代码?
【发布时间】:2022-01-09 05:55:10
【问题描述】:

当我们浏览网站时,我们可以选择“查看源代码”和“查看页面源代码”。 BS4 可以从“查看页面源”获取数据,是否可以从“查看源”获取数据?如果没有,有没有其他方法可以得到它们?非常感谢您的帮助!

【问题讨论】:

  • “查看源代码”和“查看页面源代码”有什么区别? IE。你到底想达到什么目标?
  • @RJ Adriaansen 在“查看源代码”的情况下,我看到了更多的数据(例如,在线商店中该书的 ID 或评分中的位置),但在“查看页面来源”这个信息是不存在的。因此,我正在寻找一种从第一个选项中完全获取数据的方法。在研究这个问题的时候,我找到了另一种出路:如果你点击“查看源代码”,然后在顶部面板上选择 Network,然后选择 XHR(或 FETCH/XHR),你会看到一些链接。如果我能找到一种使用 Python 找到他们的方法,那将非常酷。如果您有任何想法,我将很高兴听到!
  • 我的猜测是该站点动态加载其内容,因此内容不会出现在源代码中。您可以使用Selenium 检索整页源代码。
  • @RJ Adriaansen 您的链接帮助我解决了问题!感谢您的宝贵时间!

标签: python html selenium beautifulsoup html-parsing


【解决方案1】:

解决方案:

from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options)
driver.get("my_URL")

time.sleep(10)

html_source = driver.page_source

使用 headless 选项我们启动浏览器而不显示窗口。整个javascript执行需要暂停一下,否则我们需要的数据来不及加载。结果,我们得到了与“查看源”中的数据相匹配的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-07
    • 2010-11-24
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多