快捷导航
1 3682

映射与抓取结果不一样

duanll13 于 2015-10-17 10:55 发表 [复制链接]
http://bj.lianjia.com/chengjiao/

需要抓取房价

在文本内容框显示的是数字价格
但是映射后抓取出来的结果就变成了时间,是不是有一些反爬虫机制

举报 使用道具
| 回复

共 1 个关于本帖的回复 最后回复于 2015-10-17 17:55

Fuller 管理员 发表于 2015-10-17 17:55:57 | 显示全部楼层
不是反爬造成的,详细解释参看:http://www.gooseeker.com/res/detail_94295.html  的规则介绍部分。

参看下图:
err_same_freeformat.jpg

请注意红框,表示在网页上“发布时间”,“单价”,“总价”所用的网页结构都一样,定义规则的时候,GooSeeker程序自动会用div-cun这个标志做定位,就出现了都采集成发布时间这个结果了。解决方案如下:


这个抓取规则需要一点小技巧,因为在网页上,发布时间、单价和总价所用的html标签和属性完全一样,如果要同时抓取这三个内容,大家都抓成发布时间。这是因为抓取规则自动定位网页上的位置的时候,自动使用了div[@class='div-cun']/text()这个表达式。


要解决这个问题,

1)要么自定义xpath。

2)如果嫌麻烦,就用个小技巧,选择包含这三块内容的总DIV(请看蓝色框所示),在网页上的位置是div[@class='dealType'],使用他的@class作为定位标志,也就是选择这个div,做定位标志映射,都映射给这3个抓取内容(请看右边蓝色框,这是映射后的效果),这样,GooSeeker爬虫会自动计算出他们所在的位置是在这个总div下的不同节点。


请看抓取结果示例:

err_same_result.png


这个抓取规则已经发布成一个可下载资源,点击这里下载(需要消耗积分):http://www.gooseeker.com/res/detail_94295.html

举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Jupyter Notebook使用Python做K近邻(KNN)算
  • 基于层次结构和共现关系的在线评论主题图谱
  • 基于因果机制的用户行为研究及应用
  • 改进的K近邻算法及其在文本分析中的应用
  • Jupyter Notebook使用Gensim库做中文Word2V

热门用户

GMT+8, 2021-9-22 17:33