我是网络抓取的新手。我发现来自"查看页面来源的代码"和"检查元素"是不同的。我正在使用Chrome。我想知道有没有一种方法可以提取代码"检查元素"?
python中的BeautifulSoup模块似乎从"查看页面源代码中提取代码"而不是"检查元素"。
答案 0 :(得分:1)
从inspect元素中提取代码的唯一方法是逐行。 inspect元素中的代码基于页面的javascript而变化,这就是它不同的原因。代码也以浏览器解释源代码的方式显示。例如,有时错误的嵌套元素将由浏览器正确嵌套并显示在开发人员工具中。
答案 1 :(得分:1)
是的,正如user110977所说:检查元素中的代码基于[在浏览器中执行]页面的javascript而发生变化,这就是为什么它不同。 基本上,您需要一种脚本语言,它将使用所有javascript评估的代码调用浏览器实例。使用任何将运行Selenium或PhantomJS的服务器端语言(python,java,php ...)。
除此之外,您可能对this picture感兴趣,了解如何复制/粘贴浏览器代码。
python提取可以逐行检查元素内容吗?
没有。 Python是服务器端编程语言,不执行任何抓取页面的javascript。虽然 inspect元素面板(更正确 - 浏览器开发人员工具)向开发人员提供了javascript评估的html代码。如果您通过Selenium(或PyQt)调用浏览器实例,那[虚拟]浏览器将满足所有javascript评估的代码。这就是您访问所需代码的地方。
答案 2 :(得分:1)
要从检查元素中提取数据,我们可以使用硒(firefox Webdriver,chromedriver,PhantomJS),这将解决页面源与检查元素不同的问题。