举个栗子,也是在下爬新浪微博移动端时遇到的问题,微博评论有普通评论、回复他人评论和热门评论,详情:

普通评论

xpath获取当前标签下的所有文本-LMLPHP

回复他人评论

xpath获取当前标签下的所有文本-LMLPHP

 热门评论

xpath获取当前标签下的所有文本-LMLPHP

 用户评论内容都在<span class="ctt"></span>中,其中,普通评论和热门评论内容都很容易提取,采用.xpath['span[@class='ctt']/text()']即可

 但回复他人评论的内容被分割成三个部分,要全部获取代码如下

1 test= comment.xpath(".//span[@class='ctt']")
2 result = test[0].xpath('string(.)').strip()

就可提取出:“回复@仙儿哥哥:您好,小v私信您了解下,请您查看下消息”

注:".//span[@class='ctt']"中的“.”表示选取当前节点,必须有!参考的下文链接中没有“.”,经试验只能爬取到子标签下的全部文本,有需要提取子标签下全部文本的可自行去掉“.”

参考:https://blog.csdn.net/qq_39429962/article/details/84196938

01-10 09:45