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
分享到:
相关推荐
在Ruby中,Nokogiri和Mechanize的组合是构建刮板的常见工具。刮板通常包括以下步骤: 1. **初始化**: 使用Mechanize创建一个Web浏览器实例,用于连接到目标网站。 2. **导航**: 通过Mechanize的`get`方法访问网页,...
Ruby-Mechanize是一个强大的...总之,Ruby-Mechanize是一个强大而灵活的工具,它极大地简化了Web自动化和爬虫开发的过程。无论是处理简单的页面导航还是执行复杂的交互任务,Mechanize都能帮助开发者高效地完成工作。
Ruby Mechanize 是一个非常强大的 Ruby 库,用于自动化与网站的交互,比如模拟浏览器操作、填写表单、点击链接等。在使用 Ruby Mechanize 之前,首要任务是正确安装其依赖的 gem 包。以下是对 Ruby Mechanize 安装...
Mechanize是一个强大的自动化Web浏览器库,主要用于Python编程语言。它允许程序员模拟用户在网站上的交互行为,如填写表单、点击链接、处理...通过深入学习和实践,你将能够熟练地利用Mechanize处理各种复杂的Web任务。
总的来说,"multi-mechanize-master"是一个利用Python的`mechanize`库进行多线程网页爬取的示例项目,旨在提高爬虫效率,同时也涉及了网络请求控制、错误处理、数据存储等多个方面,对于学习和实践Python爬虫技术...
ruby mechanize包,mechanize-2.7.3.gem
ruby mechanize 2.7.2 gem 包
Mechanize自动存储和发送coo Mechanize¶↑docs.seattlerb.org/mechanize github.com/sparklemotion/mechanize描述¶↑Mechanize库用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,遵循重定向,并可以遵循...
在Python的世界里,mechanize库是一个强大的工具,专为模拟浏览器行为而设计,尤其适用于自动化Web浏览和数据抓取任务。"mechanize-源码.rar"这个压缩包文件包含了mechanize库的源代码,这对于想要深入了解其工作...
总结起来,Ruby编写的网络蜘蛛利用了诸如Nokogiri、Mechanize等工具,可以高效地抓取、解析和处理网页数据。同时,考虑到网络爬虫的复杂性和潜在挑战,开发者需要了解如何处理异步请求、反爬策略以及数据存储等问题...
Python Mechanize是一个强大的库,主要用于自动化Web浏览,它在Python编程中扮演着重要角色,尤其在Web爬虫和网页测试领域。Mechanize库模仿浏览器的行为,允许开发者以编程方式与网页交互,如填写表单、点击链接、...
机械化描述Mechanize库用于自动与网站进行交互。 Mechanize自动存储和发送Cookie,遵循重定向,并可以遵循链接和提交表单。 可以填写和提交表单字段。 机械化还可以将您曾经访问过的站点作为历史记录进行跟踪。依存...
用python成为顶级黑客,第三方库必备,mechanize网络爬虫
**机械师4j(mechanize4j)**是一个基于Java的开源爬虫库,它为Web自动化提供了方便。在编程领域,爬虫是用于自动抓取网页信息的工具,而mechanize4j则是这类工具的一个实现。该库模仿了Python的mechanize库,使得...
总之,mechanize是Python开发者实现自动化网页交互和爬虫任务的一个强大工具,尤其适用于处理需要登录、表单提交等交互的场景。通过下载并安装mechanize-0.3.2-py2-none-any.whl文件,开发者可以快速地将此库集成到...
在Python编程中,开发Web爬虫时,常常会用到Mechanize模块,它是一个强大的库,用于模拟浏览器行为,特别是在处理登录、表单提交和交互性较强的网站时。Mechanize提供了对HTTP请求的控制,使爬虫能更好地模仿用户...
**WWW-Mechanize-Chrome** 是一个Perl模块,它扩展了流行的WWW-Mechanize库,使其能够模拟用户在Google Chrome浏览器中...通过学习和掌握这个库,你可以提升你的Web自动化测试和数据抓取能力,节省大量手动操作的时间。
The_official_source_code_for_the_python-mechanize__mechanize
Ruby中实现网页抓取,一般用的是mechanize,使用非常简单。 安装 代码如下: sudo gem install mechanize 抓取网页 代码如下: require ‘rubygems’ require ‘mechanize’ agent = Mechanize.new page = agent.get...