TaoBaoApi 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/TaoBaoApi.rb +44 -43
- data/lib/TaoBaoApi/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe7369f1c1da1612ece8c80e45b87bf029eb1ef6
|
4
|
+
data.tar.gz: aadadaf529bb2b37b6322116e93e6ba6d6f8dafe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1ed502be348d6a2027b4064b25d044c6394ee0bffc99df5c3b3178e0804cb4f03f56e8aa9d1de46358621d718efde63af5a6f999a158d6aa4d05e182f62e2d5
|
7
|
+
data.tar.gz: d35ac0d6e3281793f6b2974f9d05255e767377ac1d2aa77b287f4f19893cc91adf5c79aeeef6a7dde8dc49726dbe3e5aa09697095295a14b3fd379d8f8954d56
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
在 Gemfile 文件中加入以下代码:
|
8
8
|
|
9
|
-
gem "TaoBaoApi", "~> 0.0.
|
9
|
+
gem "TaoBaoApi", "~> 0.0.2"
|
10
10
|
|
11
11
|
然后执行:
|
12
12
|
|
@@ -26,7 +26,7 @@ good = TaoBaoApi::Good.new
|
|
26
26
|
|
27
27
|
info = good.get_info 'http://item.taobao.com/item.htm?id=16434110195'
|
28
28
|
|
29
|
-
p info #hash format,{:title => xxx, :price => xxx, :img => xxx}
|
29
|
+
p info #hash format,{:title => xxx, :price => xxx, :img => xxx, :url => url}
|
30
30
|
|
31
31
|
```
|
32
32
|
测试文件见test.rb
|
data/lib/TaoBaoApi.rb
CHANGED
@@ -3,46 +3,47 @@ require 'nokogiri'
|
|
3
3
|
require 'open-uri'
|
4
4
|
|
5
5
|
module TaoBaoApi
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
end
|
6
|
+
class Good
|
7
|
+
def get_info url
|
8
|
+
return 'good_url_nil' if url.nil?
|
9
|
+
|
10
|
+
doc = Nokogiri::HTML(open(url))
|
11
|
+
doc.encoding = 'utf-8'
|
12
|
+
|
13
|
+
begin
|
14
|
+
title = doc.css('.tb-detail-hd').first.text
|
15
|
+
rescue NoMethodError
|
16
|
+
return 'good_not_exists'
|
17
|
+
end
|
18
|
+
|
19
|
+
title = title_fiter(title.strip)
|
20
|
+
|
21
|
+
if url.include? 'taobao'
|
22
|
+
price = doc.css('em.tb-rmb-num').first.text
|
23
|
+
img = doc.css('#J_ImgBooth').first.attr('data-src')
|
24
|
+
elsif url.include? 'tmall'
|
25
|
+
price = doc.css('.J_originalPrice').first.text.strip
|
26
|
+
img = doc.css('#J_ImgBooth').first.attr('src')
|
27
|
+
else
|
28
|
+
return 'good_url_is_not_taobao'
|
29
|
+
end
|
30
|
+
|
31
|
+
{:title => title,
|
32
|
+
:price => price,
|
33
|
+
:img => img,
|
34
|
+
:url => url}
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
def title_fiter(title)
|
39
|
+
title = title.split("\r\n")[0]
|
40
|
+
|
41
|
+
filter_char = ["\n","\r","\t",' ']
|
42
|
+
filter_char.each do |s|
|
43
|
+
title = title.gsub(s,'')
|
44
|
+
end
|
45
|
+
|
46
|
+
title
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/TaoBaoApi/version.rb
CHANGED