阿百川 发表于 2013-5-14 17:55:44

采集amazon经常返回不同的模板,求解决

使用amazon的api采集一些数据不全,现在想通过直接采集页面获得

但测试过程中经常碰到同样的request却返回不同的数据,求教原因

河小马 发表于 2013-5-15 01:10:30

lz 给个request 看下

阿百川 发表于 2013-5-15 06:27:03

河小马 发表于 2013-5-15 01:10 static/image/common/back.gif
lz 给个request 看下

GET http://www.amazon.com/gp/dp/B00BZ9NOUS HTTP/1.1
Accept-Encoding: identity
Accept-Language: en-us,en;q=0.5
Dnt: 1
Connection: close
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0
Host: www.amazon.com
Cache-Control: max-age=0直接是浏览器没碰到锅,但提交request就来回换

goog1e 发表于 2013-5-15 19:38:01

可能是useragent的问题.

阿百川 发表于 2013-5-15 19:51:43

goog1e 发表于 2013-5-15 19:38 static/image/common/back.gif
可能是useragent的问题.

request已经包含ua了

joul 发表于 2013-5-15 23:26:16

你要采集哪些信息呢?是自己写的程序还是用其他软件?
如果只是产品描述、图片、review之类的,我觉得还行吧,C#的HtmlAgilityPack应该可以搞定。

阿百川 发表于 2013-5-16 06:56:50

joul 发表于 2013-5-15 23:26 static/image/common/back.gif
你要采集哪些信息呢?是自己写的程序还是用其他软件?
如果只是产品描述、图片、review之类的,我觉得还行 ...

各种数据很容易采,关键是经常变换模板,偶尔一些模板还需要翻页才能采集

joul 发表于 2013-5-16 07:36:48

可能我还没到你这种采集级别吧,呵呵。要么就是采集太少了。

我一般是对那些模板变更了的产品直接跳过,比如id读不到之类的,呵呵

阿百川 发表于 2013-5-16 08:26:02

joul 发表于 2013-5-16 07:36 static/image/common/back.gif
可能我还没到你这种采集级别吧,呵呵。要么就是采集太少了。

我一般是对那些模板变更了的产品直接跳过,比 ...

直接加了while,多读取几遍,符合采集规则的再继续,就是有些影响效率

goog1e 发表于 2013-5-16 09:09:32

同一个产品也返回不同的模板,应该不会吧

不同类别的商品模板相差很大的
比如图书和衣服类的商品

感觉amazon在不断的调整前端设计

阿百川 发表于 2013-5-16 09:57:45

goog1e 发表于 2013-5-16 09:09 static/image/common/back.gif
同一个产品也返回不同的模板,应该不会吧

不同类别的商品模板相差很大的


最简单的价格,html代码一般是<td id=price>价格</td>,偶尔的<td id=price><strong>价格</stron></td>,还有其他复杂的没记住

Atrus 发表于 2013-5-16 12:07:02

自己开发的API采集 还是用的什么工具?

joul 发表于 2013-5-16 12:15:08

阿百川 发表于 2013-5-16 09:57 static/image/common/back.gif
最简单的价格,html代码一般是价格,偶尔的价格,还有其他复杂的没记住

如果只有这类问题,可以考虑用InnerText来采,不用InnerHtml。我建议把数据本地化,再读出来,事先定义好模板再组合成页面。对于产品而言,变动频繁的估计就是价格了,可以考虑每周/每月更新一次数据。

joul 发表于 2013-5-16 12:19:02

阿百川 发表于 2013-5-16 08:26 static/image/common/back.gif
直接加了while,多读取几遍,符合采集规则的再继续,就是有些影响效率

while多了确实影响效率,可以考虑后面搞多个采集规则模板,一旦变了,就加上这个规则,程序上做轮询。

阿百川 发表于 2013-5-16 15:38:38

joul 发表于 2013-5-16 12:19 static/image/common/back.gif
while多了确实影响效率,可以考虑后面搞多个采集规则模板,一旦变了,就加上这个规则,程序上做轮询。 ...

有几个规则不好处理,如果加上了效率反而比while还低:L
页: [1] 2
查看完整版本: 采集amazon经常返回不同的模板,求解决