首页 > 如何将一个网页的文本全部提取出来?

如何将一个网页的文本全部提取出来?

如题,比如我想将SF的这个问题页的纯文本(不包括html标签,就是我们直接看到的纯文本)提取出来,有啥子好方法?或者说有专门干这事的类库没有?


只取文字?
php用xpath


在R中很容易实现,比如用rvest包


可以试试我做Hacker news digest时撸的正文提取库,目前看来效果非常好,hacker news上发的链接绝大部分都能提取出来。
https://github.com/polyrabbit/hacker-news-digest/tree/master/page_content_extractor


正则就是可以了。

我用 Python 纯正则提取了好多招聘网站的招聘信息,做成了 CodeJob


LZ 用js 来取可以么?

console.log(document.body.innerText)

innerHtml 所有节点和内容

innerText 所有非节点内容


PHP 原生函数有个…… strip_tags()



这篇文章的方法基本可以满足提取正文的需求 我为开源做贡献,网页正文提取——Html2Article


Python可以使用Beautiful Soup库的get_text()方法,可以获取一个标签以及其子孙标签内所有的文本的内容,
Beautiful Soup 4.2.0 文档


找一个解析html的库,比如说python有HTMLParser,sgmllib,htmllib
然后你解析一把它应该会变成一棵树,你就遍历一下找自己要的东西拿走

我只处理过xml不过应该差不多就是这么来的...


我不介意这种事情还用一些这样那样的库,如果题主想要一劳永逸的话,去学习正则吧,任何一门语言都支持的


我不会告诉你我用

html2text

html2text is a Python script that converts a page of HTML into clean, easy-to-read plain ASCII text. Better yet, that ASCII also happens to be valid Markdown (a text-to-HTML format).

Usage: html2text.py [(filename|url) [encoding]]


找个能模拟浏览器引擎的
然后
var html = document.getElementsByTagName('html')[0]
text = html.innerTEXT

这样的东西node_module有很多如: jsdom, cheerio


php 有Snoopy库 可以直接抓取网页的文本内容 (去除HTML标签)
fetch一下
我用正则提取的


PHP有很多爬虫框架可以使用:网页抓取:PHP实现网页爬虫方式小结


再来一个Javascript的:PhantomJS
这个比较适合类似的需求,也经常被用于进行网页截图一类的工作。
官方网站:phantomjs.org


用一个正则把 html 便签都替换成空,然后把空格都替换成空就可以了吧,哪有前面各位说的那么复杂。


特定的网站,可以按照html dom 来抽取你要的数据。非常快捷。


可能题主想要这样的:

或者是这样的:

Java可以用Jsoup实现:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.7.3</version>
</dependency>
【热门文章】
【热门文章】