问题描述:
最近爬取的对象,会取得一个标签下的大量的text,而想要的结果却在text其中一部分,这样就需要对text再进行解析。
以取AMZ站的商品图片为例:
1 其图片信息不写在DIV中,即便你点击预览,也不会有异步的后台调用。图片的内容装入DIV是依赖于JS实现的。而JS是在初使化时就加载好。可以减少后台的压力。但这就就需要对JS的内容进行解析,其内容如下:
2 首先,可以通过XPATH,取得其JS内容:
//script[contains(text(),'colorImages')]/text()
3 解析文本:
4 以上就是图片内容的解析这里要说一下,因为XPATH的强项是针对元素标签的定位,而针对其内容的处理就显得捉襟见肘了。而对内容的处理,主要有 STRING的截取,正则,已有格式转化后的调用(如XML,JSON)观察取出内容,朋友发现是符合Restful的JSON串格式的。所以用JSON更为方便。我要取出所有hiRes标签下的URL。可以用到JSON.LOADS将JSON转成PYTHON的队列colorImg= colorImg[(colorImg.find('[{')):colorImg.rfind('}]')+2] # 取得[{}]中间内容 list = json.loads(colorImg) for img in list : imgs.append(img['hiRes'])