Tag: web

如何以编程方式获取已爬网页面的快照(在Ruby中)?

以编程方式拍摄网页快照的最佳解决方案是什么? 情况是这样的:我想抓住一堆网页并定期拍摄它们的缩略图,比如每隔几个月说一次,而不必手动去每一个。 我还希望能够获取可能完全是Flash / Flex的网站的jpg / png快照,所以我必须等到它加载以某种方式拍摄快照。 如果对我可以生成的缩略图数量没有限制(在合理范围内,比方说每天1000),那就太好了。 任何想法如何在Ruby中做到这一点? 看起来非常艰难。 浏览器要执行此操作:Safari或Firefox,最好是Safari。 非常感谢。

是否可以使用Ruby和Nokogiri插入JavaScript引擎?

我正在编写一个应用程序来抓取一些网站并从中抓取数据。 我正在使用Ruby,Curl和Nokogiri来做这件事。 在大多数情况下,它很简单,我只需要ping一个URL并解析HTML数据。 设置完美无缺。 但是,在某些情况下,网站会根据某些单选按钮上的用户输入检索数据。 这会调用一些JavaScript从服务器获取更多数据。 生成的URL和发布的数据由JavaScript代码确定。 是否可以使用: 一个JavaScript库以及这个设置,它能够确定在我的HTML页面中执行JavaScript吗? 除了使用不同的库之外,还有一些集成或HTML和JS库进行通信的方式吗? 例如,如果单击一个按钮,Nokogiri需要调用JavaScript,然后JavaScript需要更新Nokogiri。 如果我的方法看起来不是最好的,那么你的建议是使用Ruby在Web上构建一个crawler + scraper。 编辑:使用therubyrace看起来像第1点是可能的,因为它在你的代码中嵌入了V8引擎,但有2个替代吗?

刮刮AngularJS应用程序

我正在使用Nokogiri在Rails中删除一些HTML页面。 当我试图废弃AngularJS页面时遇到了一些问题,因为gem在完全呈现之前打开了HTML。 有没有办法废弃这种类型的页面? 如何在抓取页面之前完全呈现页面?

CasperJS动态选择列表

需要帮忙 我正在从这个网站上抓取数据,其中包含三个相互关联的选择列表,如果选择了来自第一个选择列表的任何选项,则此函数称为onchange=”Javascript:submitForm2();第二个填充选择列表。 然后如果选择第二个选择列表中的选项,则调用相同的js函数onchange=”Javascript:submitForm2();” 最后,这个表单的两个提交按钮分别调用不同的js函数来填充结果。 所以我检查了文档,但没有找到任何关于选择列表的信息。 三个动态变化的选择列表相互连接 表单有两个提交按钮 尝试使用这些代码this.click(‘select#s1 option[value=”26″]’); this.debugHTML(); this.click(‘select#s1 option[value=”26″]’); this.debugHTML(); 给我这个错误CasperError: Cannot dispatch click event on nonexistent selector: select#s1 option[value=”26″] 我也尝试过document.querySelector(‘select[name=”s1″]’).setAttribute(‘value’, “26”); 这给出了TypeError: ‘null’ is not an object (evaluating’document.querySelector(‘select[name=”s1″]’).setAttribute’)

Nokogiri能解释javascript吗? – 网页搜罗

我们正在努力削减此页面上的可用性: http : //www.equityapartments.com/new-york/new-york-city-apartments/midtown-west/mantena-apartments.aspx 我需要使用我的蜘蛛在“所有平面图”上选择并获取所有可用性。 但是我相信这些数据实际上是通过Javascript请求发送的。 我的Nokogiri蜘蛛有没有办法渲染它? 或者可以模拟点击按钮的过程?