爬取对象的解析

来源:互联网 发布:做动画的app mac 编辑:程序博客网 时间:2024/05/09 10:48

问题描述:

最近爬取的对象,会取得一个标签下的大量的text,而想要的结果却在text其中一部分,这样就需要对text再进行解析。

以取AMZ站的商品图片为例:

1 其图片信息不写在DIV中,即便你点击预览,也不会有异步的后台调用。图片的内容装入DIV是依赖于JS实现的。而JS是在初使化时就加载好。可以减少后台的压力。但这就就需要对JS的内容进行解析,其内容如下:


2 首先,可以通过XPATH,取得其JS内容:

 
//script[contains(text(),'colorImages')]/text() 

3 解析文本:

这里要说一下,因为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'])

4 以上就是图片内容的解析