在网上参考了很多这方面的,真可谓可以利用的信息甚少。在火车头论坛上逛了一下,看见大家对于这种网站的抓取,都先用抓包软件分析网站的请求,抓取内容页真正的数据请求部分。
(httpanalyzer/httpwatch等等,本人比较喜欢前者)
比如 抓取 http://detail.china.alibaba.com/offer/1130036970.html 这个网站 ,在IE浏览器上粘贴上这个网址,利用httpAnalyzer分析获取的结构
(NO 该网页加载获取请求的步骤, type 为获取请求的类型)内容页的类型应该就是text/html按照这个步骤,查找服务器返回的数据是否是内容页的数据,最终查找到真正的地址为 https://laputa.china.alibaba.com/offer/ajax/OfferDesc.do?offerId=1130036970&memberId=xiaohui055&callback=jQuery17208579062023162851_1363054197710)
https://laputa.china.alibaba.com/offer/ajax/OfferDesc.do?offerId=1130036970&memberId=xiaohui055&callback=jQuery17208579062023162851_1363054197710
分析次链接的构成
https://laputa.china.alibaba.com/offer/ajax/OfferDesc.do? 为请求内容页的基本链接
offerId=1130036970 为请求产品的id
memberId=xiaohui055 为请求产品的人的id
callback=jQuery17208579062023162851_1363054197710 不知何处作用,所以实验一下
1。不带memerId 和 callback请求页面 https://laputa.china.alibaba.com/offer/ajax/OfferDesc.do?offerId=1130036970 找不到内容
2. 带有memeberId 请求页面https://laputa.china.alibaba.com/offer/ajax/OfferDesc.do?offerId=1130036970&memberId=xiaohui055 找不到内容
等等
经过实验分析 memeberId 不是请求内容页面所必须的内容,callback应该为一个随机的值,必须要带callback=任意值
实验
http://laputa.china.alibaba.com/offer/ajax/OfferDesc.do?offerId=1130036970 &callback=cc即为内容页的请求内容。
剩下的便用火车头进行采集即可