使用 Mechanize 和 Nokogiri 保存图像?

2023-11-25

我正在使用 Mechanize 和 Nokogiri 来收集一些数据。我需要保存根据每个请求随机生成的图片。

在我的尝试中,我被迫下载所有图片,但我真正想要的唯一一张是位于div#specific.

此外,是否可以从它生成 Base64 数据,而不保存它或重新加载其源?

require 'rubygems'
require 'mechanize'
require 'nokogiri'

a = Mechanize.new { |agent|
    agent.keep_alive = true
    agent.max_history = 0
}

urls = Array.new()
urls.push('http://www.domain.com');

urls.each {|url|

    page = a.get(url)
    doc = Nokogiri::HTML(page.body)

    if doc.at_css('#specific')

        page.images.each do |img|
          img.fetch.save('picture.png')
        end

    end
}

要从特定位置获取图像:

agent = Mechanize.new
page = agent.get('http://www.domain.com')
images = page.search("#specific img")

保存图像:

agent.get(images.first.attributes["src"]).save "path/to/folder/image_name.jpg"

要在不保存的情况下对图像进行编码:

encoded_image = Base64.encode64 agent.get(images.first.attributes["src"]).body_io.string

我运行这个只是为了确保编码的图像可以解码回来:

File.open("images/image_name.jpg", "wb") {|f| f.write(Base64.decode64(encoded_image))}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Mechanize 和 Nokogiri 保存图像? 的相关文章

  • 如何使用 Nokogiri 将带有 & 符号的字符串放入 xml 文件中?

    我试图在 XML 文件中包含图像的 URL 并且 URL 查询字符串中的 符号被删除 bgdoc xpath Master each do elem part elem xpath Part inner text image imageha
  • 帮助重构这个讨厌的 Ruby if/else 语句

    所以我有这个大而多毛的 if else 语句 我将跟踪号码传递给它 然后它确定它是什么类型的跟踪号码 我怎样才能简化这件事 具体来说就是想减少代码行数 if num length lt 8 tracking service false el
  • Rails3 SQL 日志记录输出在单独的文件中

    我希望将所有 ActiveRecord SQL 日志记录重定向到不同的文件中 将其放在控制台或 log development log 中有点混乱 怎么做 我希望将其放在 log development sql log 文件中 Thanks
  • 将表列添加到 Group by 子句 - Ruby on Rails - Postgresql

    我正在尝试使用 Heroku 显然 Postgresql 对于聚合函数来说比 SQL 严格得多 当我推送到 Heroku 时 我收到一条错误消息 内容如下 关于另一个问题 https stackoverflow com questions
  • 使用 XSLT 转换 XML 并保留 CDATA(在 Ruby 中)

    我正在尝试将包含如下内容的文档转换为另一个文档 使 CDATA 与第一个文档中的完全相同 但我还没有弄清楚如何使用 XSLT 保留 CDATA 初始 XML
  • 正则表达式检查 ruby​​ 中的字母数字字符串

    我正在尝试验证 ruby 中的字符串 任何包含空格 下划线或任何特殊字符的字符串都将无法通过验证 有效字符串应仅包含字符 a zA Z0 9 我的代码看起来像 def validate string regex a zA Z0 9 if s
  • 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 替换文件中的特定行

    我有一个如下所示的文本文件 a txt open close open open close open 我需要找到一种方法将第三行替换为 close 我做了一些搜索 大多数方法都涉及搜索该行而不是替换它 在这里不能真正做到这一点 因为我不想
  • 如何在 Rails 3 中连接表并计算记录数?

    我有一个Collection有很多硬币的类 我正在尝试选择拥有两枚以上硬币的收藏品 目前 我可以直接通过 Ruby 来完成此操作 但效率极低 我当前的代码 collections Collection all select c c coin
  • 如何使用define_method创建类方法?

    如果您尝试以元编程方式创建类方法 这非常有用 def self create methods method name To create instance methods define method method name do end T
  • Ruby - :variable 和 @variable 之间的区别

    作为 Ruby on Rails 新手 我知道 和 引用具有不同的含义 我看见这个帖子 https stackoverflow com questions 3538575 whats the difference between and v
  • 平衡付款 - 有关获取现有买家和商家账户参考信息的文档

    我如何获得已创建的买家和商家帐户的参考 我只是找到创建买家和商家帐户的示例 我没有找到任何有关获取该信息以供重用的示例 是否有关于此的现有文档或只是 rdoc 中的内容 根据对 rdoc 的引用 我假设您在这里使用 Ruby gem 使用唯
  • heroku 语言区域设置不工作 I18n::MissingTranslationData

    在我的本地电脑上一切正常 但在 heroku 上我收到错误 我的 Heroku 控制台 PC HOME PC c rails konkurranceportalen master heroku console Ruby console fo
  • Rails:将参数从视图传递到控制器

    我在 Rails 中有以下模型 class Task lt ActiveRecord Base attr accessible description name project belongs to project validates na
  • 从轨道控制器返回

    这是一个初学者 Rails 问题 我这样做之后 format xml head ok 如何从控制器端点返回而不显示视图 如果我此时放弃函数的末尾 我会得到我所期望的结果 但如果我调用 返回 我最终会进入视图 或者在我的情况下会出现缺少的视图
  • 如何查找重复字母最多的单词

    我的目标是找到给定字符串中重复字母最多的单词 例如 aabcc ddeeteefef iijjfff 会回来 ddeeteefef 因为 e 在这个单词中重复了五次 这比所有其他重复字符都多 到目前为止 这是我得到的 但它有很多问题并且不完
  • Rails 3:用户创建自定义表单?

    我正在尝试思考如何允许用户创建具有所有字段类型的自定义表单 如果有一颗宝石那就太好了 但我似乎无法在任何地方找到它 所以我有一个像这样的数据库设置 t integer form id t string name t string hint
  • 在 RSpec 测试期间抑制控制台输出

    我正在测试在控制台上放置一些消息的类 包含 put p 警告等 我只是想知道在 RSpec 测试期间是否有能力抑制此输出 我压抑puts通过重定向在我的类中输出 stout到一个文本文件 这样 如果我出于任何原因需要查看输出 它就在那里 但
  • Ruby:基于控制台的菜单

    我有一个名称和 URL 数组 并希望以向上 向下滚动菜单的形式向用户呈现名称列表 基本上是什么dialog允许在外壳内 我调查过ncurses ruby rdialog and HighLine但它们似乎要么作为一个项目被放弃 要么甚至从它

随机推荐

  • Chrome tabs.onActivated.addListener 抛出“未定义”TypeError

    我正在做一个 chrome 扩展 文档中有这个说法 about chrome tabs onActivated 每当我尝试放置chrome tabs onActivated addListener 它说Uncaught TypeError
  • 使用 HTMLAgilityPack 仅提取页面文本

    好的 我对 HTMLAgilityPack 中使用的 XPath 查询非常陌生 所以让我们考虑这个页面http health yahoo net articles healthcare what your favorite flavor s
  • Qt - 没有这样的信号错误

    我试图在双击可拖动小部件之一时触发信号冰箱贴示例 以下是我对示例源代码所做的更改 拖动标签 class DragLabel public QLabel public DragLabel const QString text QWidget
  • 如何在Python中使用BeautifulSoup解析google搜索结果

    我正在尝试解析谷歌搜索结果的第一页 具体来说 是提供的标题和小摘要 这是我到目前为止所拥有的 from urllib request import urlretrieve import urllib parse from urllib pa
  • 获取特定用户的last_login时间? (姜戈)

    我有代码User objects values list last login flat True 这为我提供了所有用户最后一次登录的列表 但我不确定您如何精简对特定用户所做的操作 我尝试了以下代码User objects get user
  • 将浮点数序列化为 32 位整数的可移植方法

    我一直在努力寻找一种可移植的方法来序列化 C 和 C 中的 32 位浮点变量 以便将其发送到微控制器或从微控制器发送 我希望格式定义得足够好 以便序列化 反序列化也可以从其他语言完成 而不需要太多的努力 相关问题有 C 中 double f
  • PDO 多重查询

    从 PHP 版本 5 3 开始PDO MYSQL驱动程序已被替换为有利于PDO MYSQLND 它引入了对多个查询的支持 不过 如果有多个结果集 我不知道如何获得两个结果集SELECT查询已通过 两个查询都已执行 不可能是第二个查询刚刚被转
  • 删除 UICollectionView 边缘的单元格 - 滚动后单元格不会立即出现

    考虑一个标准的垂直滚动流布局 其中填充了足够的单元格以引起滚动 当滚动到底部时 如果删除一个项目 使得集合视图的内容大小必须缩小以容纳新的项目数 即删除底行的最后一个项目 则从滚动到底部的单元格行顶部被隐藏 在删除动画结束时 顶行出现时没有
  • 如何在angularjs中将html数据导出为pdf

    这是我渲染所有内容的 html 代码json数据来自 js文件但得到 类型错误 无法将未定义或 null 转换为对象 在Function keys 处 在 DocMeasure measureNode pdfmake js 15647 在
  • matlab中的3D体素显示

    我有一个网格 它是 3D 的并且存储一个数字 这是我的网格的示例 如果它是 2 2 2 1 gt 0 0 0 0 2 gt 0 0 0 0 如果那里不存在体素 数字 0 通常是我想用颜色或 nan 表示的数字 我想做的是用 matlab 显
  • 是否可以使 display:table-cell 布局响应式?

    在我的代码中 有一个表 其中有一个分区 其中的表行由水平的复选框组成 这是我的示例代码 完整的代码在小提琴中Here HTML table cellpadding 0 border 0 width 100 cellspacing 0 tr
  • BouncyCastle 上的椭圆曲线与数字签名算法 (ECDSA) 实施

    我正在尝试实现 ECDSA 椭圆曲线数字签名算法 但我在 Java 中找不到任何使用 Bouncy Castle 的示例 我创建了密钥 但我真的不知道应该使用什么样的函数来创建签名并验证它 public static KeyPair Gen
  • numpy.rint 可以返回 Int32 吗?

    我正在做 ret np rint y 4 return ret 我希望它回来Int32 我尝试添加dtype Int32 但它错误地说 TypeError No loop matching the specified signature a
  • 如何使用 OpenCV 制作反向填充透明矩形?

    我想在这张图片中制作一个反向填充的矩形 我的代码 import cv2 lena cv2 imread lena png output lena copy cv2 rectangle lena 100 100 200 200 0 0 255
  • ReportLab 图片链接

    有没有办法在 ReportLab 中向 Platypus 图像对象添加 href 链接 我知道如何在段落中的文本上添加链接 但我似乎找不到有关添加图像链接的任何信息 这可以通过以下方式轻松实现超链接图像类米斯梅利提出 from report
  • C 中允许的静态数组的最大大小是多少?

    在我的算法中 我知道使用静态数组 而不是动态数组 但我有时 达到堆栈的极限 我对吗 静态数组存储在堆栈中 哪些参数会影响一个 C 程序的最大堆栈大小 是否有许多系统参数影响最大数组大小 最大没有 元素的数量取决于数组类型 它取决于系统 RA
  • Windows XP 与 Vista/7 上的 MS Crypto API 行为

    我试图了解如何在 XP Vista 和 Windows 7 上从 PEM 格式 示例包含在下面的代码中 导入公钥 示例代码将在 XP 和 Windows Vista 7 上导入密钥 但不会一样的方法 在 Windows XP 上 字符串 原
  • 使用 ADFS 声明使用 .Net MVC 授权属性重定向循环

    我在使用 Net MVC 5 应用程序配置 ADFS 时遇到问题 我已经在 VS 2015 中将我的项目配置为使用声明 它工作正常 但我有一个问题 我可以使用 ADFS 登录 我可以检查用户角色等 当我尝试使用时出现问题 Authorize
  • 获取浏览器选项卡索引/Id

    那么目前大多数浏览器都有Tabs的功能 有没有办法获取Tab索引呢 所以选项卡 1 中打开了 www google com 选项卡 2 中打开了 www google com 有没有办法识别选项卡索引是什么 伪代码 if tab 2 ale
  • 使用 Mechanize 和 Nokogiri 保存图像?

    我正在使用 Mechanize 和 Nokogiri 来收集一些数据 我需要保存根据每个请求随机生成的图片 在我的尝试中 我被迫下载所有图片 但我真正想要的唯一一张是位于div specific 此外 是否可以从它生成 Base64 数据