在循环抓取表格内容时,出现问题:某一单元格内可能包含多行数据(br换行),也可能没有数据,那么在提取多行数据的时候,多行数据连接在一起导致没法区分起止,所以使用自定义xpath进行node()选取,可以保留br换行符了,然而诡异的是br为什么多了一个xmlns="http://www.w3.org/1999/xhtml"的属性声明,能不能把它去掉呢??
网址是:http://zt.zjzs.net/xuanke/10460.html
下面是截图:

举报 使用道具
| 回复

共 2 个关于本帖的回复 最后回复于 2017-2-25 15:30

沙发
Fuller 管理员 发表于 2017-2-21 22:24:50 | 只看该作者
你这是很高级的用法了,我几乎没有用过node()函数,刚才我测试了一下,如果不用node(),那么采集下来的是包含用来做映射的td节点,结果是
  1. <所含专业>
  2.     <td xmlns="http://www.w3.org/1999/xhtml" align="left">地球化学
  3.     <br />地质学
  4.     </td>
  5.                                 </所含专业>
复制代码
如果用上node()函数,就把td内部的所有节点都采集下来,结果是
  1. <所含专业>社会学
  2.     <br xmlns="http://www.w3.org/1999/xhtml" />社会工作
  3.                                 </所含专业>
复制代码
结果更加理想。含有xmlns="http://www.w3.org/1999/xhtml" 的原因是原样采集下来的的html节点所属的命名空间与结果文件xml的命名空间不同,也就是节点名字属于两个不同的体系,所以,html节点会加上命名空间声明。


第二种结果只有br节点,无论是否含有命名空间,都比较容易过滤掉。


举报 使用道具
板凳
xcntime 新手上路 发表于 2017-2-25 15:30:14 | 只看该作者
Fuller 发表于 2017-2-21 22:24
你这是很高级的用法了,我几乎没有用过node()函数,刚才我测试了一下,如果不用node(),那么采集下来的是包 ...

看来得加上node()了,最后再用编辑器替换吧。,不然没法区分换行了
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-4-26 18:04