如何使用 Ruby 或 Nokogiri 获取页面的原始 HTML 源代码?

2024-01-04

我在用着Nokogiri http://nokogiri.org/(Ruby Xpath 库)用于 grep 网页上的内容。然后我发现一些网页有问题,比如Ajax网页,这意味着当我查看源代码时,我不会看到确切的内容,比如<table>, etc.

如何获取实际内容的 HTML 代码?


如果您想要网页的原始源代码,请不要使用 Nokogiri。只需直接以字符串形式获取网页,然后不要将其提供给 Nokogiri。例如:

require 'open-uri'
html = open('http://phrogz.net').read
puts html.length #=> 8461
puts html        #=> ...raw source of the page...

另一方面,如果您想要页面的后 JavaScript 修改内容(例如执行 JavaScript 代码以获取新内容并更改页面的 AJAX 库),则不能使用 Nokogiri。您需要使用 Ruby 来控制 Web 浏览器(例如阅读 Selenium 或 Watir)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Ruby 或 Nokogiri 获取页面的原始 HTML 源代码? 的相关文章

  • 在 (Mac)Vim 中查看 ri 时摆脱 ANSI 转义字符

    我在 gvim 和 MacVim 中查看 ri 文档时遇到问题 在两者上都尝试过 一些 ri 文档包含在终端窗口中查看时看起来不错的文本装饰 但在 gvim MacVim 中查看时包含 ANSI 转义字符 例如 以下 ri 片段来自 ri
  • 从 Ruby on Rails 3.2.6 中的 Paperclip 生成的文件中删除问号

    我正在使用 Paperclip FFMPEG 将视频文件上传到我的开发环境 并最终在我的项目投入生产时上传到本地服务器 视频上传时 默认文件名如下 system modelnames paperclipnames mynewfile mp4
  • Ruby 中的方法和属性有什么区别?

    你可以给我一个例子吗 属性只是一个捷径 如果你使用attr accessor要创建属性 Ruby 只需声明一个实例变量并为您创建 getter 和 setter 方法 既然你要求一个例子 class Thing attr accessor
  • watir selenium:浏览器构造函数无法识别的参数

    在我的 Rails 应用程序中 我有一个 nokogiri watir 爬虫 运行良好 在我升级了 gems 也升级了例如 selenium 后 当我使用以下命令打开爬虫浏览器时 BROWSER OPTIONS w headless no
  • 查找日期时间与今天日期匹配的记录 - Ruby on Rails

    我有一个交易表 需要查找日期与今天的日期匹配的记录 从 Rails 控制台 我需要匹配的日期字段如下所示 我已经分配了一条记录来进行测试 ruby 1 9 2 p0 gt deal start gt Tue 10 May 2011 00 0
  • C 编译器无法在 Mac OS Mountain Lion 上创建可执行文件

    我几乎浏览了每一页 但所有提示都不能解决问题 我正在运行 Mountain Lion 我有 Xcode 所有最新的开发工具 最新的 GCC 等等 我正在尝试设置 rbenv 和 ruby build 一切似乎都正常 但是当我去安装 ruby
  • 在 Ruby 中转义字符串

    我想在某些 Ruby 中插入以下内容作为变量的值 lt gt 用双引号将其引起来是行不通的 那么是否有一个很好的 escape until the end 之类的东西可用 不要使用多种方法 保持简单 转义 反斜杠和双引号 irb main
  • 在Ruby中做每个,如何在每n个项目中放置一个br

    假设我有 10 个项目要迭代 我想每 3 个项目放置一个 br 就像这个例子一样 我怎样才能在 Ruby 中做到这一点 1 2 3 br 4 5 6 br 7 8 9 br 10 解决方案1 1 10 each slice 3 a puts
  • Array.find方法问题

    我在 ZenTest 源代码中找到这一行 result test mappings find file re ignored filename file re The test mappings and result这里都是 Array 对
  • 用 ruby​​ 漂亮地打印到文件

    我正在尝试将哈希打印到文件中 我尝试了unix重定向 逐步添加不同的标志 echo pp mymap tee summary out 2 gt 1 和文件IO my file File new dir myfile out w my fil
  • 机架测试失败:JSON 请求尚未响应

    我正在尝试为我的 Ruby 项目创建一个 JSON API 如下所示Ticketee https github com rails3book ticketeeYehuda Katz 书中提供的示例Rails 3 实际应用 http www
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • Rails has_many 通过带有附加属性的表单

    我正在尝试创建一个表单 允许用户向活动添加 编辑 删除位置 我目前找到的所有例子要么是HABTM表单 不允许编辑存在于表单中的附加属性 has many through配置 或仅列出现有关系 下面的图片显示了我想要完成的任务 该列表将显示每
  • 使用 ruby​​ Net::SSH 通过 sudo 读取远程文件

    我必须读取我有权 sudo 读取的远程文件的内容 猫 少或尾巴 我将在 Ruby 中执行此操作 因此我认为应该使用 Net SSH 来执行此操作 该文件是一个日志文件 因此可能会很大 这是我现在正在尝试的代码 require rubygem
  • Ruby 多维数组

    也许只是我缺乏在这里找到东西的能力 这就是问题所在 但我找不到任何关于如何在 Ruby 中创建多维数组的信息 有人可以给我一个如何做的例子吗 严格来说 在 Ruby 中创建多维数组是不可能的 但是可以将一个数组放入另一个数组中 这与多维数组
  • 与 Array 相比,使用 Ruby NArray 有哪些优点?

    我刚刚遇到了 Ruby 的 NArray 库 请原谅我在问这个问题时的无知 与标准 Ruby Array 实现相比 使用 NArray 库有哪些优点 我已经看到 NArray 是面向数值计算的 但是看看 API 看起来好像只有一些针对数值的
  • Ruby on Rails 中的枚举

    我是一名 C 程序员 我正在研究 ruby on Rails 但我可能在心态或其他方面遇到了一些麻烦 我有一个投票对象 该对象可以是赞成 中立或反对 我通常会让投票对象有一个像这样的字段 private VoteEnum voteEnum
  • 如何将文件中的行读入数组?

    这就是我想做的 但有一句话 lines Array new File open test txt each line lines lt lt line 可能的 执行如下操作 File readlines test txt Read 文档 h
  • Ruby 中实现的所有设计模式的备忘单?

    我想知道是否有针对 Ruby 中实现的所有设计模式的备忘单 这样您就不必重新发明轮子 设计模式对于组织大量代码非常有用 因为您不需要像在 verbose algol derivitive language 中那样编写那么多代码来在 ruby
  • 使用自定义 gem 在 Dreamhost/Passenger 上部署 Sinatra 应用程序

    我有一个 Sinatra 应用程序 正在尝试在 Dreamhost 上运行 该应用程序利用 pony 发送电子邮件 为了让应用程序从一开始就启动并运行 在添加小马之前 我必须gem unpack rack and gem unpack si

随机推荐

  • 未定义的索引[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我将一个文
  • 使用 Rails 4、邮件表单和 Ajax 发送电子邮件?

    我正在开发一个带有联系表单的应用程序 它是一个单页应用程序 我在后端使用 Rails 在前端使用 Angular 不适用于表单 和 Bootstrap 我正在尝试使用ajax 这样我就不必刷新页面 当我只是用rails 使用Mailform
  • neo4j cypher 将数组/列表转换为字符串

    我的图中的一种类型的边有一个称为roles 它是一个字符串数组 列表 它像是 Bill Smoke Haskell Moore Tadeusz Kesselring Nurse Noakes Boardman Mephi Old Georg
  • 对 mysql_real_escape_string 的每次调用都需要再次访问数据库吗?

    http php net manual en function mysql real escape string php http php net manual en function mysql real escape string ph
  • 如何在android xml中构建梯形形状?

    我想建立这个shape with bottom line and text在里面我有点困惑如何实现这个我累了 一些代码但没有得到所需的东西 到目前为止我已经尝试过这段代码 形状 xml
  • 以编程方式更改 Windows XP 中的默认代码页? (来自德尔福)

    谁能建议如何以编程方式更改默认的 Windows XP 代码页 我是在 Delphi 中执行此操作 这相当于进入控制面板 gt 区域设置 gt 非 Unicode 应用程序的语言 在这种情况下 我想切换到中文 中国 因此正在写入以下注册表字
  • HTML5 视频 - iPhone 上的当前时间设置不正确

    我设置了一个基本的 HTML5 视频 从中加载四个视频之一 我遇到的问题是 当我加载下一个视频时 它会从上一个时间位置继续播放 努力设定currentTime财产似乎要么是短暂的 要么是完全被忽视的 我已将侦听器添加到事件集合中 并且每个事
  • 将多个滤色器应用于同一个可绘制对象

    我想将多个滤色器串联应用到可绘制对象 那可能吗 或者也许创建一个过滤器 它是我想要应用的过滤器的组合 例如 我想要 Drawable d d setColorFilter 0x3F000000 Mode OVERLAY setColorFi
  • strlen 和 malloc:C 内存泄漏

    这个问题是无效的 我没有正确地释放学生 我会尽快接受向我透露这一点的答案 我是 C 新手 正在练习 malloc 从宏观上讲 我正在编写一个链表库 这个 create student 函数是我将用来测试我的链表库的许多函数之一 问题是 我运
  • 如何动态查看PL/SQL中变量的类型?

    此链接显示如何在 Oracle 中获取过程 函数变量的类型 查看变量的类型 https stackoverflow com questions 17134293 how to view the type of a variable in p
  • 为什么在大多数编程语言中数组索引都是从零开始的?

    C C C D Java 都是从零开始的 Matlab 是我所知道的唯一从 1 开始的语言 在 C 和 C 中 数组是从零开始的 因为它表示距项目列表开头的偏移量 这两行在 c 中具有相同的结果 anArray 3 4 anArray 3
  • NameError——当脚本分解为多个 python 文件时导入的模块

    很难找到这个问题的标题 希望这个线程不是重复的 我正在为一个项目使用 Python 2 7 使用 PyCharm 2016 2 2 编写这么长的脚本 并决定将其拆分为不同的 py 文件 然后我可以将其导入到主文件中 不幸的是 似乎在代码中较
  • 通知徽章在 Android O 中不起作用

    在 Android O 开发者预览版中 谷歌引入了通知徽章 这些徽章应该显示在启动器图标上 我正在使用来自开发通道的 Android O 模拟器 我编写了一个简单的代码来显示通知徽章 但它似乎不起作用 Notification notifi
  • C++ 文本文件读取

    所以我需要一点帮助 我目前有一个文本文件 其中包含以下数据 myfile txt b801000000 我想做的是将 b801 等数据读取为位 这样我就可以获取值 0xb8 0x01 0x00 0x00 0x00 目前我正在使用以下 typ
  • 从 pug 读取环境变量

    我正在使用 pug 编译静态 html 我自己的静态站点生成器 有点 除了 package json 文件中的这一行之外 我没有 node js 服务器代码 watch pages pug O options json w pages ou
  • 在 DaemonSet 中处理 PersistentVolumeClaim

    我有一个DaemonSet创建 flink 任务管理器 Pod 每个节点一个 Nodes 假设我有两个节点 node A node B Pods daemonSet 将创建 节点 A 上的 pod A 节点 B 上的 pod B 持久数量声
  • Access 数据库错误“找不到文件”?

    我已经使用 Access 数据库作为选择数据库很长时间了 这是我第一次遇到以下错误消息 Could not find file C Program Files Common Files Microsoft Shared DevServer
  • 在azure APIM中为同一功能应用程序创建2个不同的端点

    我有单个天蓝色功能应用程序 我想在 Azure APIM 中创建 2 个不同的 API 端点 我怎样才能做到这一点 According to some test it seems we can t implement the require
  • ByteBuddy:新定义的字段通过反射不可见

    我在代理中使用 ByteBuddy 向测试程序中的每个 Runnable 添加跟踪变量 new AgentBuilder Default with AgentBuilder LambdaInstrumentationStrategy ENA
  • 如何使用 Ruby 或 Nokogiri 获取页面的原始 HTML 源代码?

    我在用着Nokogiri http nokogiri org Ruby Xpath 库 用于 grep 网页上的内容 然后我发现一些网页有问题 比如Ajax网页 这意味着当我查看源代码时 我不会看到确切的内容 比如 table etc 如何