`
oldsong
  • 浏览: 4333 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Nokogiri抓取失败后重试代码

阅读更多
非常喜欢Nokogiri的简洁,尤其是根据css和xpath查找元素。有时又觉得Nokogiri太简洁了,连抓取失败重试的机制都没有。可惜在景德镇,网络经常丢包,真是郁闷。
所以写这段代码,以后肯定常用。

begin
  doc = Nokogiri::HTML(open(url).read.strip)
rescue Exception => ex
  log.error "Error: #{ex}"
  retry
end

Tips: retry可以跳回begin
这段代码将打印log并一直重试直到成功。估计这样写不大合适,因为一旦发生一个小错误,将会导致死循环。比较好的做法是,循环10次,如果都失败就放弃。
#定义常量,最多循环10次
MAX_ATTEMPTS = 10

doc = nil
begin
  doc = Nokogiri::HTML(open(url).read.strip)
rescue Exception => ex
  log.error "Error: #{ex}"
  attempts = attempts + 1
  retry if(attempts < MAX_ATTEMPTS)
end

if(doc.nil?)
  # 尝试10次后都失败,在这里处理一下。
  # 以免后面处理doc时抛空指针异常
end


原文链接:
http://rubyer.me/blog/537
分享到:
评论

相关推荐

    抓取区划代码和城乡划分代码

    抓取区划代码和城乡划分代码

    简单的数据抓取工具源代码

    这个“简单的数据抓取工具源代码”很可能提供了实现这一目标的基础框架。在IT领域,数据抓取是数据分析、市场研究、新闻监测等众多应用的重要一环。 数据抓取通常涉及到以下几个关键知识点: 1. **HTTP/HTTPS协议*...

    VC 抓取指定网页的源代码.rar

    VC 抓取指定网页的源代码,抓取远程指定URL地址中包括的文件,并显示出网页源代码,实现了类似“采集”的功能,将远程网页的内容先读取出来,然后显示,由此可扩展成一个采集模块,添加过滤功能即可,要用到字符串...

    wichita-bridges:Nokogiri抓取JSON Goole映射

    标题中的“wichita-bridges:Nokogiri抓取JSON Goole映射”指的是一个项目,该项目使用了Nokogiri库来从网络上抓取关于威奇托市桥梁的数据,并将其整理成JSON格式,以便可能用于在Google地图上进行可视化展示。...

    python爬虫抓取网页数据大作业项目代码.zip

    python爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码....

    新闻抓取策略代码

    新闻抓取策略代码

    Phantomjs抓取渲染JS后的网页(Python代码)

    ### Phantomjs抓取渲染JS后的网页(Python代码) #### 一、Phantomjs简介 Phantomjs被定义为一个无头浏览器(headless browser),它实际上是一个基于WebKit引擎的脚本可控制的“浏览器”。虽然它无法显示网页内容...

    机械臂抓取程序c++代码

    机械臂抓取程序

    抓取网页源代码

    总的来说,抓取网页源代码是一项基础但关键的网络编程任务,它涉及网络协议、数据编码和错误处理等多个方面。通过实践和理解这样的程序,开发者可以进一步掌握网络通信的原理,并将其应用到更复杂的网络应用中,如...

    抓取网站代码

    php抓取网站代码

    C#抓取网页股票年报数据程序源代码

    标题中的"C#抓取网页股票年报数据程序源代码"指的是一个使用C#编程语言开发的软件应用程序,其主要功能是从互联网上的网页中抓取股票年报的相关数据。在信息技术领域,这种程序通常被称为网络爬虫或者网页抓取工具,...

    网页代码抓取

    指定你要抓取网页的url。就可以抓取的网页的代码了。

    点评网美食数据抓取代码--java 实现

    在IT行业中,数据抓取是一项重要的技能,尤其是在大数据...以上是关于“点评网美食数据抓取代码--java 实现”项目中的主要知识点。通过实践这些技术,不仅可以掌握网络爬虫的开发,还能提升Java编程和数据处理能力。

    网页抓取代码

    数据抓取源文件时光网数据抓取源文件时光网数据抓取源文件时光网数据抓取源文件时光网

    网页抓取+表单提取源代码

    总结来说,这个"网页抓取+表单提取源代码"项目提供了一种工具,可以自动获取网页上的表单信息,这对于数据分析、市场研究、竞争对手分析或任何需要从网页中提取结构化信息的场景都非常有用。利用C语言和相关的开源库...

    网页Html抓取爬虫测试工具

    4. 自动化抓取:支持批量处理多个URL,自动抓取并应用正则表达式进行数据提取。 5. 保存和导入设置:允许用户保存成功的正则表达式和相关配置,方便日后重复使用。 通过这个工具,开发者可以快速验证正则表达式的...

    jsp网页抓取天气预报源代码

    "jsp网页抓取天气预报源代码" 这个标题表明这是一个与Java Server Pages(JSP)相关的项目,目标是实现从网页上抓取天气预报信息的功能。JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码来处理服务器端...

    java抓取网页内容源代码

    ### Java抓取网页内容源代码解析与扩展 在IT领域,网页抓取(或称网络爬虫)是一项关键技能,广泛应用于数据收集、市场分析、搜索引擎优化等多个方面。本篇文章将深入探讨一个Java编写的网页内容抓取代码,旨在帮助...

    静态页面抓取工具

    这意味着当你在本地访问抓取后的网站时,所有链接都将指向本地文件,无需互联网连接。这提高了离线浏览的便捷性,同时减少了因链接失效而导致的问题。使用httrack,用户可以设置自定义的抓取规则,如排除某些页面或...

    页面抓取的全部代码,可以跑的

    页面抓取,也被称为网络爬虫或Web抓取,是一种技术,用于自动化地从互联网上收集大量信息。在Java编程环境中实现页面抓取...在压缩包"wnpc"中,可能包含了一个完整的Java页面抓取程序,你可以解压后查看代码实现细节。

Global site tag (gtag.js) - Google Analytics