这个份文件是由doc抓html文件本地文件,我现在要抓去上面弄



doc转htm,假如单独抓一份数据是ok,但是数量多就不好,规则不好鉴定,容易抓错内容,抓空,所以contains()函数是最常用的,根据文本中的标志文字定位节点
我把文件放到了百度云盘里了  http://pan.baidu.com/s/1jHZmCwI
麻烦帮我看一下,没有弄主题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
| 回复

共 9 个关于本帖的回复 最后回复于 2017-2-26 13:33

沙发
Fuller 管理员 发表于 2017-2-25 11:42:41 | 只看该作者
你想从本地硬盘上的html文件抓数据?
举报 使用道具
板凳
zhuohui1987 金牌会员 发表于 2017-2-25 11:45:38 | 只看该作者
Fuller 发表于 2017-2-25 11:42
你想从本地硬盘上的html文件抓数据?

是的,但是contains()函数是怎么使用
举报 使用道具
地板
zhuohui1987 金牌会员 发表于 2017-2-25 11:48:05 | 只看该作者
zhuohui1987 发表于 2017-2-25 11:45
是的,但是contains()函数是怎么使用

本地不行放服务器上  做超链接就可以啊
举报 使用道具
5#
Fuller 管理员 发表于 2017-2-25 11:49:20 | 只看该作者


这些表格都是手工制作的,比如,用word,格式千变万化,而且还有合并单元格,那样就要挨个字段写xpath

xpath不用纯手工写,有生成工具,如下图,选中节点,点击 显示XPath按钮,有好几个按钮可以选择,我选择偏好xpath,就这样了


基于自动生成的,手工改改就行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
6#
Fuller 管理员 发表于 2017-2-25 11:55:11 | 只看该作者
比如,能改成这个样子:
  1. //*[@class='MsoNormal']/span[contains(text(),'估价对象')]
复制代码
找到了6个节点,要找出第一个来,还挺麻烦的,刚才我试了一下,XPath用的不熟,没有写对,需要在百度上查查,用什么函数从这6个中筛选出第一个来




举报 使用道具
7#
xandy 论坛元老 发表于 2017-2-25 13:27:00 | 只看该作者
zhuohui1987 发表于 2017-2-25 11:48
本地不行放服务器上  做超链接就可以啊

试下:
  1. //*[contains(./td//span/text(),'估价对象')][1]/td[2]
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
8#
zhuohui1987 金牌会员 发表于 2017-2-26 00:47:53 | 只看该作者
本帖最后由 zhuohui1987 于 2017-2-26 10:14 编辑

遇到三种情况我不知道定义
问题一【如下:】
表格一

//*/tr[contains(.//span/text(),'建筑结构')][1]/td[2]
这么写第二行“钢混”定义不到,选出一个,还是没有办法

问题二【如下】



//*[contains(.//span[1]/text(),'估价目的')][1]/span[1]/text()   这么样写怎么样定位不了  我上面画那边

问题三

就这么样一排字,我就要抓出让两个字,怎么用xpthy定义呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
9#
Fuller 管理员 发表于 2017-2-26 10:32:25 | 只看该作者
zhuohui1987 发表于 2017-2-26 00:47
遇到三种情况我不知道定义
问题一【如下:】
表格一

这么复杂的内容提取就不要在采集规则中做了。
1)如果数据量不大,比如,一万条以内,就导入excel,用excel的函数提取内容,excel很强大
2)如果数据量大,就用数据库的字符处理函数。

这么复杂的内容提取一般要用比较复杂的字符处理函数,xpath在这方面比较弱,不够灵活
举报 使用道具
10#
xandy 论坛元老 发表于 2017-2-26 13:33:39 | 只看该作者
zhuohui1987 发表于 2017-2-26 00:47
遇到三种情况我不知道定义
问题一【如下:】
表格一

问题一:
xpath语句可以这样写:
  1. //*[@class='MsoNormal'][contains(.//text(),'建筑结构')]/../following-sibling::td[1]
复制代码

问题二和问题三,如Fuller所说的,你把整段文本采集下来,到excel或数据库处理,这样来的快和容易些。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

精彩推荐

  • 利用AI阅读和分析文本:扣子COZE记录用户反
  • 在网页片段内直观标注——以B站评论采集为
  • 利用AI阅读和分析文本:使用COZE建设游记文
  • 使用AI工具Kimi生成python代码为文本分析结
  • 苹果mac电脑安装集搜客网络爬虫软件失败的

热门用户

GMT+8, 2024-11-22 17:26