问题标签 [html-content-extraction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
5651 浏览

html - HTML 内容提取的最新技术是什么?

有很多关于 HTML 内容提取的学术工作,例如 Gupta & Kaiser (2005) Extracting Content from Accessible Web Pages,这里还有一些感兴趣的迹象,例如onetwothree,但我不太清楚后者的实践如何很好地反映了前者的思想。最佳做法是什么?

指向良好(特别是开源)实现的指针和对实现的良好学术调查将是我正在寻找的那种东西。

后记第一个:确切地说,我所追求的那种调查将是一篇论文(已发表,未发表,等等),它讨论了学术文献中的标准和一些现有的实现,并分析了实现的不成功程度从标准的角度来看。而且,真的,发到邮件列表的帖子也对我有用。

后记第二个要明确的是,在我接受了Peter Rowell的回答之后,我们可以看到这个问题导致了两个子问题:(i)清理不合格HTML的已解决问题,最推荐Beautiful Soup解决方案,以及(ii)未解决的问题或将垃圾(主要是网站添加的样板和促销材料)与肉类(认为该页面可能有趣的那种人实际上认为相关的内容)分离。解决最先进的技术,新的答案需要明确地解决从肉到肉的问题。

0 投票
4 回答
2162 浏览

php - PHP:来自 cURL、HTML 扫描的数据

我如何扫描 html 页面,以获取某个 div 中的文本?

0 投票
4 回答
1708 浏览

algorithm - 我可以使用哪些算法来识别网页上的内容

我在浏览器中加载了一个网页(即我可以访问它的 DOM 和元素定位),我想找到可能包含最多内容的块元素(或这些元素的排序列表)(如一个连续的文本块)。目标是排除菜单、页眉、页脚等内容。

0 投票
2 回答
7537 浏览

python - 使用 Beautiful Soup Python 模块将标签替换为纯文本

我正在使用Beautiful Soup从网页中提取“内容”。我知道有些人以前问过这个问题,他们都被指向美丽的汤,这就是我开始使用它的方式。

我能够成功获取大部分内容,但我在使用作为内容一部分的标签时遇到了一些挑战。(我从一个基本策略开始:如果一个节点中有多个 x-chars,那么它就是内容)。我们以下面的html代码为例:

当我使用上面的代码获取长文本时,它会在标签处中断(识别的文本将从“并且希望..”开始)。所以我尝试用纯文本替换标签,如下所示:

以上不起作用,因为 Beautiful Soup 将字符串作为 NavigableString 插入,当我使用 len(x) > 20 的 findAll 时会导致同样的问题。我可以使用正则表达式首先将 html 解析为纯文本,清除所有不需要的标签,然后调用 Beautiful Soup。但我想避免两次处理相同的内容——我试图解析这些页面,以便我可以显示给定链接的内容片段(非常像 Facebook 分享)——如果一切都用 Beautiful Soup 完成,我想它会更快。

所以我的问题是:有没有办法使用 Beautiful Soup 来“清除标签”并用“纯文本”替换它们。如果没有,最好的方法是什么?

感谢您的建议!

更新: Alex 的代码在示例示例中运行良好。我还尝试了各种边缘情况,它们都运行良好(通过下面的修改)。所以我在一个真实的网站上试了一下,遇到了令我困惑的问题。

当我运行上面的代码时,我收到以下错误:

当我查看 HTML 代码时,“保持最新..”没有任何以前的兄弟姐妹(在我看到 Alex 的代码之前,我没有以前的兄弟姐妹如何工作,并且根据我的测试,它看起来像是在寻找“文本”在标签之前)。所以,如果没有前一个兄弟姐妹,我很惊讶它没有经历 a.previousSibling 的 if 逻辑是 None 和 a;nextSibling 是 None。

你能告诉我我做错了什么吗?

-ecognium

0 投票
1 回答
342 浏览

screen-scraping - 使用屏幕截图提取数据

我正在寻找有关我需要从某些网站提取“联系我们”信息的屏幕截图的建议。

有什么想法可以让我获得一个好的(免费的)屏幕截图吗?

0 投票
4 回答
1359 浏览

regex - 如何使用带有正则表达式的 ID 从表中获取内容?

我需要对 html 字符串进行排序,以便获得所需的内容。现在我需要遍历具有 ID 的表中的表行。如何使用正则表达式执行此操作?

0 投票
4 回答
622 浏览

jquery - 使用 jQuery 抓取内容

我正在尝试从以下 html 块中提取几个变量。如果您不介意提供帮助,将不胜感激!

我希望该函数遍历#services并获取 each 的srcimg以及来自 each的内容<h2>

这是我目前所拥有的......

0 投票
5 回答
974 浏览

php - PHP 会话变量

用户将单击一个链接,该链接将打开一个新页面(下面的代码)。我的问题是,当打开这个新页面时,它会创建一个新的会话 ID。我该如何阻止这种情况发生?

0 投票
2 回答
198 浏览

html-content-extraction - 如何使用其他站点内容自动更新站点。?

如何使用经常刷新(可能一分钟两次)的其他一些站点内容来更新站点?

0 投票
2 回答
10411 浏览

python - 让 BeautifulSoup 找到特定的

我正在尝试为各种科学期刊网站组合一个基本的 HTML 抓取工具,特别是尝试获取摘要或介绍性段落。

我目前正在研究的期刊是 Nature,我一直在使用的文章作为我的样本可以在http://www.nature.com/nature/journal/v463/n7284/abs/nature08715.html

但是,我无法从该页面中获取摘要。我正在搜索<p class="lead">...</p>标签之间的所有内容,但我似乎无法弄清楚如何隔离它们。我以为这会很简单

使用 Python 2.5,BeautifulSoup 3.0.8,运行它返回“无”。我没有选择使用其他需要编译/安装的东西(比如 lxml)。BeautifulSoup 很困惑,还是我?