我有一批网页,网页上有PDF文件,但是这些文件在网页的位置不定,有时在网页的右边,有时在下边,有时在中间,比如下面的情形
https://www.icde.org/knowledge-hub/distance-education-in-myanmar
https://www.icde.org/knowledge-h ... network-report-2021
https://www.icde.org/knowledge-h ... -ljubljana-slovenia
https://www.icde.org/knowledge-h ... anguage-in-your-way

https://www.icde.org/knowledge-h ... f-new-book-on-moocs


怎样做个统一的下载规则,下载这些文件?要写x-path?
举报 使用道具
| 回复

共 2 个关于本帖的回复 最后回复于 2022-3-8 16:38

沙发
Fuller 管理员 发表于 2022-3-8 16:19:39 | 只看该作者
你的采集规则有没有存盘?叫什么名字?我可以加载你的规则分析一下
举报 使用道具
板凳
Fuller 管理员 发表于 2022-3-8 16:38:33 | 只看该作者
假设所有的网址都是有类似这样的结构: xxxx.pdf,那么就可以用自定义xpath,使用contains()过滤网址

第一步,正常做内容映射:用那个a元素的@href属性做映射


第二步,点击“测试”按钮,查看规则,找到那个抓取内容的xpath,下图红框里面的,只要双引号内部的内容,拷贝出来


第三步,编辑xpath,因为所有的网址是这样结尾的:xxxx.pdf,那么就写一个很通用的xpath。自定义xpath的时候,xpath的起点不要变。
这是内容映射以后得到的网址:following-sibling::div[position()=1]//*[@class='image-caption']/p/a/@href
起点是这个div节点:following-sibling::div
这个起点不要改变,而是改变后面的内容。要想通用,就使用//,表示一个节点下的任意一层都是备选节点,那么,写成这样:
following-sibling::div//a/@href[contains(., '.pdf')]
表示在起点下面的任意一层的a节点,如果a节点的@href属性含有.pdf字符串,就是要采集的内容。把上述xpath拷入下面的界面,就定义好了

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

精彩推荐

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

热门用户

GMT+8, 2024-5-19 07:14