问题标签 [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.

0 投票
1 回答
297 浏览

ruby-on-rails - 抓取 rake 任务似乎遭受了不必要的缓存

我难住了!

我有一个 rake 任务,它每分钟运行一次。

登录后,它会找到我感兴趣的 JSON,但在 rake 任务中注意到 JSON 中的任何更改之前,它最多可以运行 30 次任务。在此期间,我错过了某些 JSON 对象的一些更改。

似乎有一些缓存正在进行,我试图关闭机械化缓存,如图所示,只是不确定我现在还能尝试什么。

任何指针?

提前致谢。

来自服务器的响应:

0 投票
1 回答
143 浏览

ruby - How to find and click an object based on title?

I want to click a html object based on title

but my code doesn't work

it returns (eval):14:in 'block (2 levels) in links_with': undefined method 'title' for #<Mechanize::Page::Link:0x1f6aeb0> (NoMethodError)

is there any way how to find and click an object using title?

0 投票
1 回答
297 浏览

ruby - 在多线程环境中跨不同请求共享(机械化)会话?

我正在开发一个使用 Ruby 的 Mechanize 登录到受密码保护的站点并使用某些数据馈送的应用程序。反过来,我的应用程序允许我的用户查询和操作数据。每次有新用户访问我的应用程序时,它都会登录到远程数据源以获取数据。

问题是:远程站点允许会话持续长达 24 小时。切断远程站点上的多个登录的最佳解决方案是什么?

有多种方法可以做到这一点:将 Mechanize 对象序列化并保存到数据库,将 Mechanize 的 cookie/jar/session 信息保存到请求之间的共享文件中,等等。我正在寻找最佳实践,最重要的是一个解决方案将在 Heroku 的多线程环境中工作。

0 投票
1 回答
217 浏览

ruby - 恢复 net::ERR_CONNECTION_SET 机械化 Ruby

我正在使用 Mechanize for ruby​​ 创建一个网络爬虫。我将一次运行 200k 的批次,我希望能够设置一个站点无效的实例变量,并在 get 请求返回错误时继续下一个站点。例如,我正在抓取一个站点,该站点在针对它触发 http get 请求Error 101 (net::ERR_CONNECTION_RESET): The connection was reset.并且我的应用程序崩溃时返回。

有没有我应该捕获的异常,以便我可以从 ERR_CONNECTION_RESET 中恢复,或者你们过去使用的方法是什么?

0 投票
2 回答
302 浏览

ruby - 为什么 Mechanize 在看到错误的 OAuth 凭据时会引发“未定义的方法‘任何?’”?

我正在测试一些在幕后使用 Mechanize 的 Ruby 代码。我发现当我在请求中传递错误的 OAuth 令牌时,Mechanize 会引发意外异常。

我使用错误令牌进行调用,调用引发以下异常:

我有一些额外的分析,我将作为答案发布,但如果有人有额外的见解,将不胜感激。

我尝试将这个问题放在 mechanize-users 邮件列表中,但版主没有发布。

0 投票
1 回答
123 浏览

ruby - 使用 mechanize-ruby 提交登录表单时,我可以使用变量来表示字段名称吗?

我在使用 Mechanize 提交登录表单时遇到了问题。例如,如果我需要登录到 bitbucket:

这很简单,但是,并非所有登录表单在这两个字段上都具有相同的“名称”值。例如,WordPress 的登录表单使用 "log" 和 "pwd" 。这将使上述代码无效。

我想将一些参数传递给这个方法,以便它可以用于不同的登录表单。我试图遵循“如何从字符串转换为对象属性名称? ”但没有成功:

如果有人可以提供帮助,我真的很感激。

0 投票
2 回答
236 浏览

ruby - Ruby Mechanize 与 http 身份验证有关的问题

我在绕过使用 http 身份验证的网站时遇到问题,我有一个网站列表,我做了一些废弃,但其中一些网站上有 http 身份验证。我不希望获得那些我希望能够确定它们是否受到 http auth 保护然后继续前进的网站的内容。例如,在下面的代码片段中,agent.get 永远不会返回,所以我无法处理它。我该如何处理这样的案件?

0 投票
2 回答
1719 浏览

ruby - 使用 Mechanize 的 getaddrinfo 错误

我编写了一个脚本,它将遍历我们数据库中的所有客户,验证他们的网站 URL 是否有效,并尝试在他们的主页上找到一个 Twitter 链接。我们有超过 10,000 个 URL 需要验证。在验证了 url 的一小部分之后,我们开始为每个 URL 获取 getaddrinfo 错误。

这是抓取单个 URL 的代码副本:

注意:我还运行了此代码的一个版本,它创建了一个 Mechanize 实例,该实例在所有对 scrape_url 的调用中共享。它以完全相同的方式失败了。

当我在 EC2 上运行它时,它几乎正好通过了 1,000 个 URL,然后为剩余的 9,000+ 返回此错误:

注意,我尝试过使用亚马逊的 DNS 服务器和谷歌的 DNS 服务器,认为这可能是一个合法的 DNS 问题。在这两种情况下,我得到了完全相同的结果。

然后,我尝试在本地 MacBook Pro 上运行它。在为其余记录返回此错误之前,它仅通过了大约 250 次:

有谁知道我怎样才能让脚本通过所有记录?

0 投票
2 回答
2294 浏览

ruby-on-rails - Twitter API 与 Web 抓取?

首先,我想获得我 Twitter 帐户的所有关注者。我做了一些研究,发现我们可以使用 Ruby on rails 进行网页抓取:Nokogiri 或 Mechanize gems。我还有一个用于网络抓取的 CSS 选择器。现在,如果我查找 HTML 页面源代码,它不会显示该帐户的所有关注者。

我真的可以使用网络抓取代码来获取我所有的 Twitter 关注者,还是应该使用 Twitter API?

0 投票
1 回答
1191 浏览

ruby - 如何使用 ruby​​ 和 mechanize 生成的文件名下载文件?

我正在尝试从使用 CDN 进行分发的网站下载文件。下载页面上的 URL 都以 file.pdf 结尾,但在浏览器中单击链接会导致下载具有描述性文件名的文件(例如“invoice1234.pdf”)。显然,解析 URL 以获取文件名会导致每个文件都被命名为 file.pdf - 我想使用通过浏览器下载时使用的相同文件名。我的代码看起来像这样:

任何想法,将不胜感激!