采集网页:http://hndb41.com/publish/index. ... h.name=&pageIndex=1由于需要下载附件,用@onclick构造网址
@onclick有两种值
prompt('作废')
todownload('/standard/pdf/DB41_T 148-2000.pdf')

于是我根据onclick利用xpath构造网址
concat('http://hndb41.com/standard/tosetWatermark.action?publish.filepath=',substring-before(substring-after(.//*[@class='preview']/@onclick,"'"),' '),'%20',substring-before(substring-after(.//*[@class='preview']/@onclick,' '),"'"))
构造成两种网址
todownload 有效: 网址http://hndb41.com/standard/toset ... 41_T%20148-2000.pdf
prompt值的无效网址 :http://hndb41.com/standard/toset ... ublish.filepath=%20

两重网址最后下载出来的结果却都是生成tosetWatermark.action类型文件,没有下载到我需要的pdf附件

1.如何把无效的网址设置为空的同时把需要的网址正确构造出来?
2.为什么网址正确构造出来了却不能把附件以pdf形式正确下载出来?


举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2019-5-23 15:11

沙发
ym 版主 发表于 2019-5-23 11:43:33 | 只看该作者
1、用concat函数,无论节点是否存在都会执行拼接,这个过滤不了节点不存在的情况
2、集搜客爬虫是用的火狐内核,火狐对这种附件的文件名和格式识别不了,所以下载到的附件就没有按正确的文件名和格式存储,但是修改文件格式为PDF后,就能打开看到PDF内容了,用集搜客爬虫下载到这些文件后,需要根据downloaddir或pagefiledir里的描述文件,对已下载的文件重命名
举报 使用道具
板凳
微舆情 高级会员 发表于 2019-5-23 12:17:38 | 只看该作者
上面贴出的那个xpath可以简化, 不用拼接域名部分, 在做规则的界面勾选"拼接网址"
举报 使用道具
地板
微舆情 高级会员 发表于 2019-5-23 12:18:56 | 只看该作者
这样prompt值无效的哪些就会生成空的网址
substring-after(substring-before(@onclick,"')"),"todownload('")
举报 使用道具
5#
lubbio 中级会员 发表于 2019-5-23 14:44:45 | 只看该作者
微舆情 发表于 2019-5-23 12:17
上面贴出的那个xpath可以简化, 不用拼接域名部分, 在做规则的界面勾选"拼接网址" ...

我找不到"拼接网址"的选项,方便截个图吗?
举报 使用道具
6#
Fuller 管理员 发表于 2019-5-23 15:11:27 | 只看该作者
lubbio 发表于 2019-5-23 14:44
我找不到"拼接网址"的选项,方便截个图吗?


双击抓取内容,在高级设置这里设置
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-4-25 03:58