Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 一种开发文章提取器的算法_Html_Css - Fatal编程技术网

Html 一种开发文章提取器的算法

Html 一种开发文章提取器的算法,html,css,Html,Css,我已经承担了一个项目,将提取任何网页的主要内容。例如,如果我输入任何新闻文章的URL,它将只返回文章部分。第一步是获取给定URL的源代码。有很多方法可以做到这一点。在获得给定网页的HTML代码后,我会将该部分保留在标记中,因为很明显,文章将在正文的某个地方 在此之后,我选择每个div元素并检查它包含多少文本。最后,我选择了div,其中包含大部分文本 我的另一种想法是,对于每个元素,我将检查它的父元素。最后,我将直接选择包含最多子级的div。要更好地理解它,请查看此树- 现在我知道这些方法是最基本

我已经承担了一个项目,将提取任何网页的主要内容。例如,如果我输入任何新闻文章的URL,它将只返回文章部分。第一步是获取给定URL的源代码。有很多方法可以做到这一点。在获得给定网页的HTML代码后,我会将该部分保留在
标记中,因为很明显,文章将在正文的某个地方

在此之后,我选择每个
div
元素并检查它包含多少文本。最后,我选择了
div
,其中包含大部分文本

我的另一种想法是,对于每个
元素,我将检查它的父元素。最后,我将直接选择包含最多子级的div。要更好地理解它,请查看此树-


现在我知道这些方法是最基本的,这就是为什么我要问这个问题。我想知道社区对此的建议。你们都使用什么方法?

我喜欢实现自己的“新闻”爬虫的想法

一些建议:

  • 查看一些热门网站(如《纽约时报》)的来源(“在chrome上单击鼠标右键>检查”);搜索常用的html对象名、ID或类,它们用于标识html中的不同块;例如:具有“故事”或“故事正文”ID的div
  • 我会使用单词计数,但也会使用常见短语词典,这些短语可能会出现在新闻文章中
  • 我将在“页眉”和“页脚”中搜索块,不包括注释部分或广告(同样,通过搜索对象id或类名的值)
  • 从主页开始爬网,它可能会引用子页面或文章-一旦您有了引用(例如标题或文章名称),它将帮助您在子页面本身中导航
  • 在任何情况下,我建议使用java库—它将使您的生活更轻松;将其与类似jquery的选择器一起使用

祝你好运。

“任何”网页都可能过于雄心勃勃,可能是一些公司整个团队的全职工作。但您可以从查看最常见的CMS生成的页面结构开始。许多人使用语义上有意义的HTML标记(例如,
文章
章节
)或类,这可能会有很大帮助。但是概括起来,你会发现有很多页面的结构很难猜测,在某些情况下,你可能需要排除而不是包含。