想要抓取一些附件的网址,最初只做了内容定位,只抓到了三个附件的网址。因为这个节点,并没有id和class,所以不能做定位标志映射。去研究了下xpath,但还是一脸懵啊。不过尝试加了一条自定义xpath,这次抓到了58个附件的网址,还是没抓全。
我贴几个不同的相对路径(偏好class),请大神指教下。
1.//*[@class='showbox']/div[position()=4]/p[position()=2]/a/@href
2.//*[@class='showbox']/div[position()=4]/div[position()=9]/a/@href
3.//*[@class='p0']/span[position()=1]/a/@href
4.//*[@class='p0']/span[position()=2]/font/a/@href
举报 使用道具
| 回复

共 6 个关于本帖的回复 最后回复于 2016-11-18 16:21

沙发
Fuller 管理员 发表于 2016-11-18 15:15:07 | 只看该作者
第1和第2相似,你的意思是要做一个通用的XPath?
举报 使用道具
板凳
Fuller 管理员 发表于 2016-11-18 15:17:22 | 只看该作者
如果网页上节点层次会变化,可以考虑使用网页上的文本内容作为标志,比如
  1. //*[@class='showbox']/div[position()=4]/p[position()=2]/a/@href
复制代码
也许可以写成
  1. //*[@class='showbox']/div[position()=4]/*[contains(text(),'标志文字']/a/@href
复制代码


举报 使用道具
地板
banjolaura 初级会员 发表于 2016-11-18 15:17:48 | 只看该作者
Fuller 发表于 2016-11-18 15:15
第1和第2相似,你的意思是要做一个通用的XPath?

对,这个可以吗,有183个新闻公告,每个下边有一个到两个的附件。
举报 使用道具
5#
banjolaura 初级会员 发表于 2016-11-18 15:26:53 | 只看该作者
Fuller 发表于 2016-11-18 15:17
如果网页上节点层次会变化,可以考虑使用网页上的文本内容作为标志,比如也许可以写成

...

谢谢,不过能麻烦帮我看下规则吗,规则名是“高新技术-二级”
举报 使用道具
6#
HJLing 版主 发表于 2016-11-18 16:17:53 | 只看该作者
不能直接做样例复制,需要用xpath来写每个附件,我打开几个网页来看,好像都是1或2个附件,为了保险起见你也可以写多几个。



附件1 抓取内容表达式: .//*[@id='content']/*[.//text()[contains(.,'doc')]][1]//text()[contains(.,'doc')]/../@href


附件2 抓取内容表达式: .//*[@id='content']/*[.//text()[contains(.,'doc')]][2]//text()[contains(.,'doc')]/../@href

是不是所有附件都是doc格式?我写的xpath是以doc来查找的。
举报 使用道具
7#
HJLing 版主 发表于 2016-11-18 16:21:37 | 只看该作者
本帖最后由 HJLing 于 2016-11-18 16:43 编辑

还有一个方法,如果你只是单纯想下载全部附件,而不用和标题对应的话,可以用样式线索,直接找到包含doc的全部链接,把这些链接作为下级规则的线索。

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

精彩推荐

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

热门用户

GMT+8, 2024-4-20 13:58