Nokogiri 返回变量名称而不是网站上的实际数据?
Nokogiri returning variable name instead of actual data on website?
我正在从网站获取数据。我需要获取 h1 标签内的文本。当我检查元素时,在 h1 标签内有一个文本。但是当我使用 Nokogiri 获取时,在那个 h1 标签中有一个变量名。
content = open('https://example.com').read
html = Nokogiri::HTML(content)
html.css('h1#egift-refresh-online-number-desktop').text
当我在 chrome 检查时,我发现
但是当我查看该页面的源代码时,我看到了
我需要提取实际值而不是变量名。我怎样才能用 Nokogiri 做到这一点?有什么方法可以做到吗?
Nokogiri 只是一个简单的 XML/HTML 解析器,并不是完成这项工作的正确工具。
您获取的内容看起来像 Handlebars 模板(或其众多分支之一),{{ ecardDetails.cardCardnumber }}
只是 HTML 文件中的一个占位符,由 [=23] 替换为实际数据=] 可能在执行 AJAX 请求之后。
Nokogiri 不执行 JavaScript 因为它不是浏览器。
Capybara 是一种 DSL,主要用于验收测试,当与正确的驱动程序(如 selenium 或 webkit)一起使用时,可以自动化浏览器,从而抓取依赖 JavaScript 的页面。
我正在从网站获取数据。我需要获取 h1 标签内的文本。当我检查元素时,在 h1 标签内有一个文本。但是当我使用 Nokogiri 获取时,在那个 h1 标签中有一个变量名。
content = open('https://example.com').read
html = Nokogiri::HTML(content)
html.css('h1#egift-refresh-online-number-desktop').text
当我在 chrome 检查时,我发现
但是当我查看该页面的源代码时,我看到了
我需要提取实际值而不是变量名。我怎样才能用 Nokogiri 做到这一点?有什么方法可以做到吗?
Nokogiri 只是一个简单的 XML/HTML 解析器,并不是完成这项工作的正确工具。
您获取的内容看起来像 Handlebars 模板(或其众多分支之一),{{ ecardDetails.cardCardnumber }}
只是 HTML 文件中的一个占位符,由 [=23] 替换为实际数据=] 可能在执行 AJAX 请求之后。
Nokogiri 不执行 JavaScript 因为它不是浏览器。
Capybara 是一种 DSL,主要用于验收测试,当与正确的驱动程序(如 selenium 或 webkit)一起使用时,可以自动化浏览器,从而抓取依赖 JavaScript 的页面。