为了抓取搜房网里租房的地址信息
在找到script节点后,作为映射,测试后得到结果如下:
<?xml version="1.0" encoding="UTF-8"?>

<列表>
        <item>
                <坐标>
        $(function () {
            new DetailsMap({ container: "dszfxq_C05_04", cityName: "苏州", pointX: "120.65537261962890625000", pointY: "31.31258583068847656250", zoomIndex: 15 })
        })
    </坐标>
        </item>
</列表>


但是我只想得到里面pointX和pointY的坐标信息。
所以就在高级设置里写了这个Xpath语句:

string-after(string-before(/html/body/script[position()=2],'zoomlndex'),'pointX')

但是我发现并没有卵用啊,测试出来还是以前的结果。。

于是我找了一下这个script下的text节点,发现这个text节点里的内容是这个玩意儿:

// 标红
    var url = window.location.href;
    if (url.indexOf("office") > -1) {
        PublicNav.select('office');
    } else if (url.indexOf("shop") > -1) {
        PublicNav.select('shop');
    } else {
        PublicNav.select('zu');
    }   


好像并没有我要的坐标信息,所以问问有没有会的大神,能帮我解决一下这个问题啊?跪谢~

实例网址:http://zu.suzhou.fang.com/chuzu/14_367987_-1.htm#zf_Map_anchor
举报 使用道具
| 回复

共 14 个关于本帖的回复 最后回复于 2016-10-25 17:03

沙发
Fuller 管理员 发表于 2016-10-19 11:41:49 | 只看该作者
是 XPAth函数吗?用的函数不对,应该是substring-after(), substring-before()
举报 使用道具
板凳
myj12345 新手上路 发表于 2016-10-19 12:01:56 | 只看该作者
Fuller 发表于 2016-10-19 11:41
是 XPAth函数吗?用的函数不对,应该是substring-after(), substring-before()

不好意思,改了
substring-after(substring-before(/html/body/script[position()=2],'zoomlndex'),'pointX')
是这个么?但还是原来的抓取内容。
举报 使用道具
地板
Fuller 管理员 发表于 2016-10-19 12:13:05 | 只看该作者
myj12345 发表于 2016-10-19 12:01
不好意思,改了
substring-after(substring-before(/html/body/script,'zoomlndex'),'pointX')
是这个么 ...

在MS谋数台上,点击“测试”按钮,在输出窗口中转到“数据规则”窗口,看看<坐标>的xpath是什么,然后把它拷贝出来,改编成含有substring-after()和substring-before()的格式,然后在“高级设置”的自定义xpath那里输入这个改编过的xpath。

也就是说,为了能与自动生成的规则融合在一起,一般不使用绝对定位:/html/body/script[position()=2]
举报 使用道具
5#
myj12345 新手上路 发表于 2016-10-19 12:20:46 | 只看该作者
Fuller 发表于 2016-10-19 12:13
在MS谋数台上,点击“测试”按钮,在输出窗口中转到“数据规则”窗口,看看的xpath是什么,然后把它拷贝 ...

是这个:
<坐标>
<xsl:value-of select="."/>

可是这个怎么写substring呢
举报 使用道具
6#
shenzhenwan10 金牌会员 发表于 2016-10-19 14:12:13 | 只看该作者

你把整个测试的数据规则贴出来吧
举报 使用道具
7#
myj12345 新手上路 发表于 2016-10-19 14:29:12 | 只看该作者
shenzhenwan10 发表于 2016-10-19 14:12
你把整个测试的数据规则贴出来吧

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:svg="http://www.w3.org/2000/svg" >
<xsl:template match="/">
<列表>
<xsl:apply-templates select="/html/body/script[position()=2 and count(./.)>0]" mode="列表"/>
</列表>
</xsl:template>


<xsl:template match="/html/body/script[position()=2 and count(./.)>0]" mode="列表">
<item>
<坐标>
<xsl:value-of select="."/>
</坐标>
</item>
</xsl:template>
</xsl:stylesheet>
举报 使用道具
8#
Fuller 管理员 发表于 2016-10-19 14:33:23 | 只看该作者
定位标志表达式填写  .
抓取内容表达式填写  substring-after(substring-before(.,'zoomlndex'),'pointX')
举报 使用道具
9#
myj12345 新手上路 发表于 2016-10-19 15:53:46 | 只看该作者
Fuller 发表于 2016-10-19 14:33
定位标志表达式填写  .
抓取内容表达式填写  substring-after(substring-before(.,'zoomlndex'),'pointX') ...

提示为整理箱生成结果时发生异常
举报 使用道具
10#
Fuller 管理员 发表于 2016-10-19 16:07:05 | 只看该作者
myj12345 发表于 2016-10-19 15:53
提示为整理箱生成结果时发生异常

把你录入的xpath贴出来看看
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 运行Apple无法验证的程序的方法
  • 文本聚类分析软件的安装和使用方法
  • 利用AI阅读和分析文本:扣子COZE记录用户反
  • 在网页片段内直观标注——以B站评论采集为
  • 利用AI阅读和分析文本:使用COZE建设游记文

热门用户

GMT+8, 2024-12-24 03:40