`
ywencn
  • 浏览: 87535 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

周末在家两天利用Nokogiri 和 Mechanize 写了个团购导航小网站。。。轻拍砖。。。

阅读更多
module Goods
  module MeiTuan
      
      site = "美团"
      @site = Site.find_by_name(site)
      cities_xml = Nokogiri::XML(open(@site.city_api))
      cities_xml.search("division").each do |city|
        city_id =  city.search("id").text
        city_name = city.search("name").text
        product_url = @site.product_api.gsub(/XXX/,city_id)
        xmls = Nokogiri::XML(open(product_url))
        xmls.search("deal").each do |product_xml|
        full_title = product_xml.search("title").text
        url = product_xml.search("deal_url").text
        pic = product_xml.search("large_image_url").text
        deadline = product_xml.search("end_date").text.to_datetime.to_s(:db)
        member_num = product_xml.search("quantity_sold").text
        price = product_xml.search("price").text
        soldout = true if product_xml.search("sold_out").text == "true"
        original_price = product_xml.search("value").text
        my_city_id = City.find_or_create_by_name(city_name).id
        site_id = @site.id

        hash = {
          :city_id => my_city_id ,
          :url => url ,
          :full_title => full_title ,
          :pic => pic ,
          :original_price => original_price ,
          :deadline => deadline ,
          :member_num => member_num ,
          :price => price ,
          :original_price => original_price ,
          :site_id => site_id
        }

        save_it!(hash)
      end 
    end 
  end
end

 

好吧好吧,上面这段写得很难看。。。。。

 

写了很多上面这样的东西,去爬团购网站的数据,有些还好,提供API,直接拿Nokogiri去分析就行了。

有些就悲剧了,只能用Mechanize很人肉的去分析HTML。。。 最慢的一个我写了1个小时。。。杯具啊。。。

 

现在已经有很多这样类似的团购导航网站了,似乎PHP有个开源的项目就是团购导航网站的,哎,PHP把风气搞坏了。。。

哎,真没意思,那些网站都张得一样。就像80%的团购网站都长得一样一样。似乎团购网站也有直接的PHP源码。。。。

 

突然想起来前端时间火气来的SNS,似乎觉得长得不像开心网就不叫SNS。。。搞不懂,缺少创意。

 

我这顺便把淘宝、拍拍、有啊的数据也一起抓了,并且放在展示的页面,直接和团购商品进行价格比较。

 

于是乎,我发现团购未必真的更便宜嘛!!

 

我的网址是 www.bijiatuan.com ,目前放在载途上,额。。。

 

大家轻拍转。。。蜗牛ruby刚入门,多谢Hooopo同学解答了我若干问题哈。。。。

 

展示一下团购商品价格比较的效果:

 


  • 大小: 176.4 KB
  • 大小: 280 KB
分享到:
评论
9 楼 orcl_zhang 2010-09-19  
团购网,都张这个样子嘛。。
引用
周末在家两天
效率还是挺高的。
你这个貌似没有一点后台功能啊。。全是链接。。

大家有用团购网上买过东西么?
8 楼 Hooopo 2010-09-19  
字体不好看,弄得像门户网站似的!
7 楼 Hooopo 2010-09-19  
哇!!
6 楼 qichunren 2010-07-15  
怎么切图片啊?
5 楼 ywencn 2010-07-14  
qichunren 写道
你的美工你是自己搞的吗?哎,我这一块真差。

简单的CSS还是会写,但是对网站风格的把握很差。。。
还要多多学习啊
4 楼 qichunren 2010-07-14  
你的美工你是自己搞的吗?哎,我这一块真差。
3 楼 ywencn 2010-07-14  
qichunren 写道
看到说zaituu,又激起了我的回忆,说两个字“垃圾”

什么情况什么情况?
2 楼 qichunren 2010-07-14  
看到说zaituu,又激起了我的回忆,说两个字“垃圾”
1 楼 marshluca 2010-07-14  
不错 直接解析API比较方便,好像目前开放API的还不多吧

相关推荐

    刮板:使用Nokogiri和Mechanize编译基于Ruby的手工刮板

    在Ruby中,Nokogiri和Mechanize的组合是构建刮板的常见工具。刮板通常包括以下步骤: 1. **初始化**: 使用Mechanize创建一个Web浏览器实例,用于连接到目标网站。 2. **导航**: 通过Mechanize的`get`方法访问网页,...

    Ruby-Mechanize一个让自动化web交互变得容易的ruby库

    Ruby-Mechanize是一个强大的...总之,Ruby-Mechanize是一个强大而灵活的工具,它极大地简化了Web自动化和爬虫开发的过程。无论是处理简单的页面导航还是执行复杂的交互任务,Mechanize都能帮助开发者高效地完成工作。

    ruby mechanize安装需要的gem包

    Ruby Mechanize 是一个非常强大的 Ruby 库,用于自动化与网站的交互,比如模拟浏览器操作、填写表单、点击链接等。在使用 Ruby Mechanize 之前,首要任务是正确安装其依赖的 gem 包。以下是对 Ruby Mechanize 安装...

    Mechanize相关资料

    Mechanize是一个强大的自动化Web浏览器库,主要用于Python编程语言。它允许程序员模拟用户在网站上的交互行为,如填写表单、点击链接、处理...通过深入学习和实践,你将能够熟练地利用Mechanize处理各种复杂的Web任务。

    multi-mechanize-master

    总的来说,"multi-mechanize-master"是一个利用Python的`mechanize`库进行多线程网页爬取的示例项目,旨在提高爬虫效率,同时也涉及了网络请求控制、错误处理、数据存储等多个方面,对于学习和实践Python爬虫技术...

    mechanize-2.7.3.gem

    ruby mechanize包,mechanize-2.7.3.gem

    ruby mechanize 2.7.2 gem 包

    ruby mechanize 2.7.2 gem 包

    Mechanize是一个ruby库,可以轻松实现自动的Web交互。-Ruby开发

    Mechanize自动存储和发送coo Mechanize¶↑docs.seattlerb.org/mechanize github.com/sparklemotion/mechanize描述¶↑Mechanize库用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,遵循重定向,并可以遵循...

    mechanize-源码.rar

    在Python的世界里,mechanize库是一个强大的工具,专为模拟浏览器行为而设计,尤其适用于自动化Web浏览和数据抓取任务。"mechanize-源码.rar"这个压缩包文件包含了mechanize库的源代码,这对于想要深入了解其工作...

    ruby写的网络蜘蛛

    总结起来,Ruby编写的网络蜘蛛利用了诸如Nokogiri、Mechanize等工具,可以高效地抓取、解析和处理网页数据。同时,考虑到网络爬虫的复杂性和潜在挑战,开发者需要了解如何处理异步请求、反爬策略以及数据存储等问题...

    python mechanize 0.2.5

    Python Mechanize是一个强大的库,主要用于自动化Web浏览,它在Python编程中扮演着重要角色,尤其在Web爬虫和网页测试领域。Mechanize库模仿浏览器的行为,允许开发者以编程方式与网页交互,如填写表单、点击链接、...

    mechanize:Mechanize是一个ruby库,可以轻松实现自动的Web交互

    机械化描述Mechanize库用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,遵循重定向,并可以遵循链接和提交表单。 可以填写和提交表单字段。 机械化还可以将您曾经访问过的站点作为历史记录进行跟踪。依存...

    python第三方库-mechanize

    用python成为顶级黑客,第三方库必备,mechanize网络爬虫

    mechanize4j源程序及所有依赖的jar

    **机械师4j(mechanize4j)**是一个基于Java的开源爬虫库,它为Web自动化提供了方便。在编程领域,爬虫是用于自动抓取网页信息的工具,而mechanize4j则是这类工具的一个实现。该库模仿了Python的mechanize库,使得...

    Python库 | mechanize-0.3.2-py2-none-any.whl

    总之,mechanize是Python开发者实现自动化网页交互和爬虫任务的一个强大工具,尤其适用于处理需要登录、表单提交等交互的场景。通过下载并安装mechanize-0.3.2-py2-none-any.whl文件,开发者可以快速地将此库集成到...

    Python使用Mechanize模块编写爬虫的要点解析

    在Python编程中,开发Web爬虫时,常常会用到Mechanize模块,它是一个强大的库,用于模拟浏览器行为,特别是在处理登录、表单提交和交互性较强的网站时。Mechanize提供了对HTTP请求的控制,使爬虫能更好地模仿用户...

    WWW-Mechanize-Chrome:自动化Chrome浏览器

    **WWW-Mechanize-Chrome** 是一个Perl模块,它扩展了流行的WWW-Mechanize库,使其能够模拟用户在Google Chrome浏览器中...通过学习和掌握这个库,你可以提升你的Web自动化测试和数据抓取能力,节省大量手动操作的时间。

    The_official_source_code_for_the_python-mechanize__mechanize.zip

    The_official_source_code_for_the_python-mechanize__mechanize

    Ruby中的Mechanize的使用教程

    Ruby中实现网页抓取,一般用的是mechanize,使用非常简单。 安装 代码如下: sudo gem install mechanize 抓取网页 代码如下: require ‘rubygems’ require ‘mechanize’ agent = Mechanize.new page = agent.get...

Global site tag (gtag.js) - Google Analytics