【问题标题】:Selenium Python getting <script> tag information?Selenium Python 获取 <script> 标签信息?
【发布时间】:2018-10-29 00:09:18
【问题描述】:

我正在尝试获取标签内的信息。

<script type="text/javascript"> INFO </script>

更具体地说:

<!DOCTYPE html>
<html lang="en" class="js logged-in client-root">
<head>...</head>
<body class style ="position: fixed; top: -265px; width: 100%;">
  <span id="react-root" aria-hidden="true">...</span>
  <script type="text/javascript> This is the tag i want. </script>
  <script type="text/javascript> 
     window.__initialDataLoaded(window._sharedData); </script>
...

我正在尝试,但没有运气:

browser = webdriver.Chrome()
info = browser.find_element_by_xpath("//script[@type='text/javascript']")
print(info.text) //prints nothing

【问题讨论】:

  • 您可以发布您正在尝试的网站的 URL 或 HTML 代码吗?
  • 用更多outerHTML更新问题
  • instagram.com 我正在尝试提取
  • @DebanjanB 我没明白你的意思...
  • @doruksahin 用更多 precedingfollowing 标签更新 HTML

标签: javascript python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

似乎这是预期的行为。见here

这工作正常。 WebElement#getText 返回用户的可见文本 可以看到。用户看不到&lt;script&gt; 标记中的文本,因此getText 不会返回它。 您仍然可以通过 JavaScript 访问标签的内容

所以你必须这样做:

info.get_attribute('innerHTML')

【讨论】:

  • 非常感谢。顺便说一句,我从浏览器中获取页面源代码和检查器。当我比较它们时,有些不同。页面来源已评论时间信息,但检查对我没有帮助。
  • 抱歉,您能否详细说明一下“评论的时间信息”是什么意思?
  • 我正在抓取 Instagram。当我手动使用 Chrome 时,检查了“页面源”和“检查元素”。我比较了它们,它们不一样。 driver.page_source 给了我“检查元素”信息,而不是“页面源”。有没有办法我可以用硒废弃“页面源”?
  • 如果您想要页面源,那么刮板可能是更好的选择。试试 BeautifulSoup (crummy.com/software/BeautifulSoup/bs4/doc)
猜你喜欢
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
相关资源
最近更新 更多