标签存档: CasperJS

CSS中的属性选择器

css 选择器 casperjs有句谚语叫“条条大路通罗马”,本意是说到一个城市可能有许多路径可选。对于CSS选择器也是一样。使用HTML元素中的不同特征点,可以组合出唯一确定某节点的许多种定位方案。有些CSS选择器可能在网页的CSS样式表中很少有机会出场,但在复杂页面的JS脚本中,有可能会用到这些选择器,来对网页的DOM树进行操作。比如网易股票网页(http://money.163.com/stock/#from=stock_index)中有这么一句代码:

继续阅读 »

用CasperJS抓取京东的价格数据

casperjs 瀑布流初学CasperJS,很多问题困惑不解。比如京东的价格数据采集。打开一个有商品的京东页面。在Chrome中检查元素,可以看到有价格数据。但如果选择查看页面源码,就会发现价格的位置是空的。查看页面源码功能可能只显示从服务器获得的HTML文件本身,所以这里价格数据为空也正常。但是CasperJS不是可以执行JS渲染吗?为什么在CasperJS里抓取这个价格数据,甚至在设置了几十秒的延迟之后,仍然是空呢?

继续阅读 »

CasperJS中querySelector使用的一些问题

casperjs phantomjs queryselectorCasperJS是PhantomJS(一个Webkit内核的无界面浏览器)和SlimerJS(对应于Gecko内核)的一个封装,用于简化一些操作和功能调用。虽然CasperJS主要应用场景是Web测试,但它也常常用于数据抓取。CasperJS有助于解决网页上JavaScript渲染的问题。因为JavaScript和Ajax常常用来改变HTML的DOM结构,导致实际页面内容和从Web服务器直接抓取到的HTML文件并不一致。这是很多HTML操作库难于彻底解决的问题。

继续阅读 »