我想采集知乎各个用户的 个人主页资料,但是由于知乎每个人填写信息完整度不一致,所以个人主页显示的信息页面也不完全相同。如下面两个用户显示的个人资料完整是不一样的,所以如果用模块化的采集可能会出现采集内容不对应或者采集不到内容的情况。



本帖子中包含更多资源

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

x
举报 使用道具
| 回复

共 9 个关于本帖的回复 最后回复于 2016-12-23 09:50

沙发
HJLing 版主 发表于 2016-12-20 10:10:46 | 只看该作者
用自定义xpath就可以解决了


对于不一定出现的字段 不要勾关键内容

本帖子中包含更多资源

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

x
举报 使用道具
板凳
Fuller 管理员 发表于 2016-12-20 10:12:57 | 只看该作者
在采集微博个人主页详细信息的时候也有这个问题,最完美的解决方法是: 在采集的时候不用区分每个字段的含义,而是一行行作为样例复制都采集下来,最后在数据库清洗过程中,根据每一行的标题,把每一行归于数据库表的特定字段。这样做,可以确保一行都不漏,但是,数据清洗脚本就要稍微复杂一点
举报 使用道具
地板
白集 新手上路 发表于 2016-12-22 14:41:02 | 只看该作者
楼主,我也是想批量爬取知乎个人主页,也是遇到不规则位置爬取问题,你现在解决的怎么样了啊?是用的xpath解决的,还是批量爬下来再预处理啊?发给你私信无法发送成功。
举报 使用道具
5#
白集 新手上路 发表于 2016-12-22 17:11:50 | 只看该作者
HJLing 发表于 2016-12-20 10:10
用自定义xpath就可以解决了

你好,针对你回复的自定义xpath,比如上图中的张浩,教育经历有2行,直接用这个xpath   
//*[@class='ProfileHeader-detailItem' andcontains(.//text(),'教育经历')]/div/div/text()
只能取到第一个text,就是中国科学院大学 凝聚态物理 ,无法完整取到北京大学 化学。这个应该如何改进这个xpath呢。

另外第二个问题是:
在谋数台中您是如何点击个人主页的查看详细资料这个按钮的啊,因为我进入之后,点击任何一个地方都是标注的状态,无法展开查看详细资料。谢谢。上面的xpath我是在firepath里尝试的。





举报 使用道具
6#
ym 版主 发表于 2016-12-22 17:24:56 | 只看该作者
1、第二个text的问题,可以再建一个标签用来抓它,也是用自定义xpath的方法
2、详细资料如果一定要点击才能加载出来的话,每个网页最多点击一次的话,就可以设置爬虫路线的记号线索,效果跟翻页是一样的,存在这个按钮就会点击,不存在也不影响采集
举报 使用道具
7#
HJLing 版主 发表于 2016-12-22 17:30:01 | 只看该作者
白集 发表于 2016-12-22 17:11
你好,针对你回复的自定义xpath,比如上图中的张浩,教育经历有2行,直接用这个xpath   //*[@class='Prof ...


建立两个抓取内容
教育1的xpath是:.//*[@class='ProfileHeader-detailItem' and contains(.//text(),'教育经历')]/div/div[1]
教育2的xpath是:.//*[@class='ProfileHeader-detailItem' and contains(.//text(),'教育经历')]/div/div[2]

你也可以建立多个 适应有更多种教育经历的情况 不过不要勾上关键内容

第二个问题 要做模拟点击
参考教程《模拟点击

本帖子中包含更多资源

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

x
举报 使用道具
8#
白集 新手上路 发表于 2016-12-22 18:19:10 | 只看该作者
HJLing 发表于 2016-12-22 17:30
建立两个抓取内容
教育1的xpath是:.//*[@class='ProfileHeader-detailItem' and contains(.//text(),' ...

明白了,非常感谢。

举报 使用道具
9#
白集 新手上路 发表于 2016-12-22 19:23:55 | 只看该作者
HJLing 发表于 2016-12-22 17:30
建立两个抓取内容
教育1的xpath是:.//*[@class='ProfileHeader-detailItem' and contains(.//text(),' ...

听您的指导豁然开朗,不过我个人对xpath自定义不是很熟,依葫芦画瓢,还是遇到一个问题。
【目标】采集认证与成就中作者的信息,如下图红框:

马力个人主页链接:https://www.zhihu.com/people/mali/answers  
我采用刚刚的结构采不出来,我用Firepath看了下,感觉是页面结构稍有不同,但是我自己试了几次,都没尝试成功。
【可以麻烦您帮忙写一个以上红框里的自定义的xpath吗?可以写一条,我自己根据您的规则再修改后面的规则。非常感谢!】

本帖子中包含更多资源

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

x
举报 使用道具
10#
HJLing 版主 发表于 2016-12-23 09:50:57 | 只看该作者
白集 发表于 2016-12-22 19:23
听您的指导豁然开朗,不过我个人对xpath自定义不是很熟,依葫芦画瓢,还是遇到一个问题。
【目标】采集认 ...


.//div[@class='Profile-sideColumnItem' and contains(./div/text(),'认证信息')]/div[2]

不懂xpath可以去百度学习
社区也有一些资料 http://www.gooseeker.com/tuto/tu ... &tutorKey=xpath

本帖子中包含更多资源

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

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

精彩推荐

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

热门用户

GMT+8, 2024-11-23 11:30