问题标签 [mechanize-ruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 在红宝石中选择“”链接与机械化
我用 ruby 编写了一个使用 mechanize 的脚本。它会转到 google.com,让您登录并搜索猫的图像。接下来我想从页面中选择一个结果链接,然后保存图像。
我的问题是所有结果的链接都显示为空字符串,所以我不确定如何指定和单击它们。
这是pp 页面的输出,因此您可以看到我正在谈论的链接。请注意,第一个链接是建议的链接,我可以单击这些链接,因为它们的标题为“过去 24 小时”,但第二个链接是我无法单击的搜索的实际结果。
现在这里是输出的一个片段:
这将显示页面上的链接。
注意到屏幕上的所有空白了吗?这就是 pp 页面输出中空名称“”链接的位置。有人对我如何点击一个有任何想法吗?
这是脚本的代码。
ruby-on-rails - Nokogiri 和 Mechanize 帮助(单击 Nokogiri 通过 Mechanize 找到的链接)
我通过css表单搜索链接page = agent.get('http://www.print-index.ru/default.aspx?p=81&gr=198')
,之后我在页面变量中有很多链接,但我不知道如何使用它们,如何通过Mechanize点击它们。我在stackoverflow上找到了这个方法:
但它仅适用于一个链接,所以我如何将这种方法用于许多链接。
如果我应该发布更多信息,请说出来。
ruby - 机械化链接#click vs Agent#get
我有一个应用程序在页面上查找某些链接(使用 CSS),并通过在 href 值上使用 agent#get 来检索链接引用的页面。这已经工作了几个月,直到今天(大概该网站已经改变了一些东西,因为其他网站仍然可以工作),而该网站正在返回一个不同的页面(在网页层次结构上,如果这有什么不同的话;但这可能是网站决定的)返回该页面而不是请求的页面)。page.uri 反映了返回的实际 URI,它与请求的 URI 不同,但响应代码为 200,因此可能没有发生重定向。
为了弄清楚发生了什么,我尝试找到链接并执行 page.links[38].click。这将返回正确的页面。以编程方式查找正确的链接有些问题(因为您不能使用 CSS 来查找链接,只能找到一个元素)所以我想继续使用我当前的方法。我试图了解使用 agent#get 与 link#click 检索页面有什么不同。在你问之前,我已经验证了 agent#get 的 URI 与我#click的链接的 URI 相同。 #click 与 #get 有什么不同,这会导致一个人检索正确的页面,而另一个人检索不同的页面?
ruby - Ruby 机械化点击 div
我正在尝试在页面中搜索包含特定类的 div,然后单击它们。每个包含该类的 div 上都有一个 onclick 事件。
我当前的代码看起来像这样,
div 在网站上看起来像这样。
现在显然没有点击方法,因为它是一个 Nokogiri 对象,所以我在这里问一下机械化是否可以点击这样的 div?我当前的代码可以找到与此类名称匹配的所有 div,但我不知道如何单击它。
ruby - 随机超时:使用 Mechanize Gem 的 Ruby 中的错误异常
我正在Ruby 1.9.3-p327中构建一个应用程序,它获取解析一些页面(抓取),然后根据一些值将一些列插入/更新到数据库中。为了获取解析,应用程序使用 Mechanize gem,并且通过 activerecord gem 访问数据库(MySQL)。
我遇到的奇怪问题是,有时会随机引发Timeout::Error异常,有时永远不会发生,但可能再过两天就会发生,并且记录或页面类型不同。异常的日志是:
downloader.rb第10 行包含方法 fetch 的定义:
第63 行的worker.rb包含对 fetch 方法的调用。
阅读文档,说我应该尝试为代理(机械化)设置read_timeout、open_timeout属性,并尝试使用idle_timeout、keep_alive,但错误仍然是随机性的。
Gemfile 的内容是:
ruby - Ruby Mechanize 中 text/csv Content-Encoding = UTF-8 的问题
当尝试使用 Mechanize V2.5.1 加载具有 UTF-8 编码的 CSV 页面时,我使用了以下代码:
但我发现内容编码钩子没有被调用,我得到以下错误和回溯:
有谁知道为什么内容挂钩代码没有触发以及为什么我收到错误?
ruby - 抓取似乎没有 URL 的页面
我正在尝试抓取这些列表,并在属于我的客户的网站上为这些工作列表提供更多曝光。问题是我需要能够链接到特定的工作列表才能让求职者申请。这是我试图从中保存列表链接的页面。
如果我可以保存一个地址供求职者点击查看原始列表然后申请,那将是理想的。
- 这个网站做了什么没有为这些页面提供 URL
- 是否可以提供具体的房源地址
- 如果可能的话,我怎么能生成那个地址?
如果我无法获得特定地址,我想我可以获得它,以便用户单击一个链接,该链接会触发我客户网站上的内部脚本,该脚本采用列表 ID 并搜索我发现该列表的网站,然后重定向用户到该特定列表。
这样做的缺点是用户将不得不等待一段时间,具体取决于列表在目录上的距离。我可以在进度条上添加令人愉快的“正在搜索您的列表!感谢您的耐心”消息。
不过,如果我可以避免这样做,那就太好了!
我正在使用 Nokogiri 和 Mechanize。
ruby - Rails ruby-mechanize 如何在重定向后获取页面
我想从http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company收集制造商及其药品详细信息。
Mechanize gem 用于在 ryan教程的帮助下从 html 页面中提取内容
我可以成功登录,但无法到达目标页面http://www.mims.com/India/Browse/Alphabet/All?cat=Company&tab=company。
到目前为止我已经尝试过
注意:我为您的测试共享了虚拟登录凭据
单击“CompaniesBrowse 公司目录”链接后,页面重定向并显示闪烁消息“您正在重定向...”,Mechanize gem 缓存此页面。
问题:
1)如何获取原始页面(重定向后)。
ssl - 机械化获取“Errno::ECONNRESET:对等方重置连接 - SSL_connect”
我无法让 Mechanize 加载曾经可以工作的页面——它确实失败了Errno: ECONNRESET: Connection reset by peer - SSL_connect
消息。关于我应该尝试什么或我应该看的细节有什么建议吗?(请参阅下面的“我尝试过的”......)
更新 1
从相关的 SO 帖子中得到提示,我尝试直接使用Net::HTTP
. 当我设置时http.ssl_version = :TLSv1
,我得到一个重定向而不是一个错误(应该是这样)。所以我的问题变成了:如何ssl_version
从内部配置 Net::HTTP 的底层参数Mechanize
?
谢谢...
症状:
环境:
我试过的:
- 我从 Firefox 网络浏览器尝试了相同的 URL。有用。
- 我已经明确地将 Mechanize 设置
request_headers
为完全模仿 Firefox 浏览器。没变。 - 我已经更新了我的
ssl/cert.pem
文件(第二次),如这篇 SO 帖子中所述。没变。 - 我尝试了不同的网站:
www.pge.com
和www.sdge.com
. 两者都有效。该网站有些不同www.sce.com
。
Net::HTTP 成功
这是 Net::HTTP 工作的示例:
ruby-on-rails - 无法通过 Mechanize (Ruby) 提交 Amazon 表单
在我编写的脚本中,我代表用户使用他们的凭据成功登录亚马逊。然后我正在尝试填写表格以输入新地址。这是我当前的代码:
我提交了表单,它会将我带到相同的“添加地址”表单,但没有明显的错误,页面上没有任何新内容。这new_response
请求填写了相同的表格。
当我检查发布请求时,这是我得到的:
对我来说最突出的是它的最后一部分:
我没有设置newAddress.x
或newAddress.y
任何地方,我似乎无法。
关于为什么这没有成功提交的任何想法?可能是 SSL 问题吗?