通过交互式网页爬取,抓取天猫商品价格
2015-03-30 09:59
423 查看
通过交互式网页爬取,抓取天猫商品价格。
方式:模拟点击颜色分类,然后读取定价
参考(1):http://www.cnblogs.com/xinzhyu/p/4214669.html
主要利用CasperJS工具包:http://casperjs.org/
其中最重要的是通过css3选择器,来选取需要操作的网页DOM元素,css3选择器参见:http://www.w3cplus.com/css3/basic-selectors
查看元素的小技巧:
在浏览器上,相应元素处单击右键,选择“审查元素”,可以看到相应元素的html代码。
选择器测试小技巧:
IE或firefox,F12打开开发者窗口,在搜索栏中输入选择器,可检测选择器效果。
IE:
Firefox:
下面代码使用casperjs tm.js运行:
以上代码参考(1)修改,仅实现抓取一个给定链接的商品价格,并在控制台输出。若要通过node.js来对链接列表中的商品进行多线程抓取,并且把抓到的价格通过json post到服务器,可以参考原文的方法。
方式:模拟点击颜色分类,然后读取定价
参考(1):http://www.cnblogs.com/xinzhyu/p/4214669.html
主要利用CasperJS工具包:http://casperjs.org/
其中最重要的是通过css3选择器,来选取需要操作的网页DOM元素,css3选择器参见:http://www.w3cplus.com/css3/basic-selectors
查看元素的小技巧:
在浏览器上,相应元素处单击右键,选择“审查元素”,可以看到相应元素的html代码。
选择器测试小技巧:
IE或firefox,F12打开开发者窗口,在搜索栏中输入选择器,可检测选择器效果。
IE:
Firefox:
下面代码使用casperjs tm.js运行:
var casper = require('casper').create({ clientScripts: ["jquery-1.8.0.js"], verbose: false, logLevel: 'debug', pageSettings: { loadImages: false, // The WebPage instance used by Casper will loadPlugins: false // use these settings } }); phantom.outputEncoding = "gbk";//解决乱码问题 //获取需要采集的url列表 casper.start('http://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.5.DOIb7J&id=15770542928&skuId=77000178467&cat_id=2&rn=834703bc8f2c7b8023fafe89107e079c&user_id=291487571&is_b=1', function() { console.log(this.getCurrentUrl()); //casper.GetDetailUrl(url); }); //处理当前页面的所有sku价格与信息 casper.then(function getPic() { product = casper.evaluate(function getProductFromPage() { return $('ul[class*="tb-img"]').children().size(); }); console.log(product); var str = '' for (var i = 1; i <= product; i++) { str += casper.getPrice(i) + "|"; } var item = new Object(); item.price = str; item.numiid = this.getCurrentUrl(); console.log(str); }); //获取商品的价格 casper.getPrice = function(index) { var dd = casper.clickByImg(index); if (dd == -1) { return ''; } productPrice = casper.evaluate(function getPriceFromPage() { return $('.tm-price').first().text().trim(); }); return (dd + "_" + productPrice); }; //点击小图及获取此商品的data-value casper.clickByImg = function(index) { this.click('ul.tb-img>li:nth-child(' + index + ') a'); return index; }; casper.run();
以上代码参考(1)修改,仅实现抓取一个给定链接的商品价格,并在控制台输出。若要通过node.js来对链接列表中的商品进行多线程抓取,并且把抓到的价格通过json post到服务器,可以参考原文的方法。
相关文章推荐
- 抓取淘宝天猫的商品的促销价格
- 获取页面js动态写入的数据(抓取天猫商品价格)
- java爬虫抓取天猫商品的价格数据
- 【实例】python 使用beautifulSoup 抓取网页正文 以淘宝商品价格为例
- scrapy-抓取天猫女装销量前60的商品名称、价格、链接及打开连接后的店铺名称和链接
- 网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- C#实现通过程序自动抓取远程Web网页信息
- java正则表达式的使用1 通过正则表达式抓取网页中的email
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容
- python抓取京东价格分析京东商品价格走势
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- 通过urllib2抓取网页内容(1)
- 通过爬取天猫商品评论实例分析Python爬取ajax动态生成的数据
- 通过HtmlAgilityPack实现网页信息抓取
- 通过Url抓取网页内容
- python抓取京东价格分析京东商品价格走势
- 通过java.net.URL类抓取某个网页的内容