文章详情页
xpath - python怎么用lxml处理
浏览:167日期:2022-09-22 09:54:52
问题描述
例如:
<p>没<em><!--red_beg-->aa<!--red_end--></em></p><p>没<em><!--red_beg-->aa<!--red_end--></em>没<em><!--red_beg-->aa<!--red_end--></em></p><p>没</p>
就是在p标签里可能会出现同样的em标签,而且数量不定,那我怎么获取p的内容,包括em里的内容。例如第二个p获取输出是‘没aa没aa’
或者获取到p节点之后,怎么把里面的内容转换为字符串
问题解答
回答1:今天偶然学到处理这个问题的方法,特意翻出来这个问题回答。题主你可以看一下xpath的轴,比如你要取得第二个<p>标签的“没aa没aa”,实际是取得它全部后代节点的文本内容,可以使用element_dom.xpath('//p[2]//descendant::text()')来取得,拿到的结果是一个这样[’没’, ’aa’, ’没’, ’aa’]的list,然后自己手动拼接成字符串就可以了,比如''.join(list)。同理,如果你需要进行其他操作,也可以使用类似的方法。
回答2:换bs4,string和text之间的异同就在这里。
回答3:lxml.html的.text_content()方法,可以获取当前节点和所有子节点的文本内容。
相关文章:
1. javascript - sublime怎么支持webp的浏览?2. javascript - nginx 反向代理 js跨域问题?3. css3 - img垂直水平居中问题4. python - pig latin问题 总是出现list/string index out of range5. javascript - sublime已经安装了babel插件和sublimelinter-jshint为什么还是显示es6语法错误?6. html5 - 为什么浏览器可以显示HTML文档中未被定义的标签?7. javascript - 图片能在网站显示,但控制台仍旧报错403 (Forbidden)8. javascript - angularJS select标签问题9. 安装mysql,完成时提示的是用户名root,在终端查看版本时显示的不是root,请问这怎么解决10. python - 如何解决程序运行太久之后被操作系统暂停的情况?
排行榜

网公网安备