当前位置: 首页 > 知识库问答 >
问题:

如何提取该网页中的所有章节标题?

鲜于允晨
2023-03-14

使用JSoup,我一直试图选择所有h2节标题节点(进入elements列表):

Elements sectionheadings = dom.doc.select("h2[class=section-heading collapsible-heading open-block]");

在这个维基百科页面中:

https://en.m.wikipedia.org/wiki/banana_cake

html.client-js body.mediawiki.ltr.sitedir-ltr.stable.skin-minerva.action-view.animations div#mw-mf-viewport div#mw-mf-page-center div#content div#bodycontent.content.mw-content-ltr h2.section-heading.collable-heading.open-block

我做错了什么?

选择所有这些h2标题的正确JSoup语法是什么?(我在那里至少能看到其中的4个)

共有1个答案

慕容铭
2023-03-14

确定使用什么选择器的最佳方法是打印出JSOUP检索的HTML文档并对其进行检查。我自己用你的url做了这件事,发现:

  • 在检索的文档中,h2标记没有任何属性

但是,当我们使用Firebug检查网站时,为什么会有h2标记的属性呢?这是因为属性是在网站加载过程中由JavaScript生成的。由于JSOUP无法爬网Javascript生成的内容,因此它将以纯HTML内容“原样”检索网站内容。

Elements sectionheadings = dom.doc.select("h2");
 类似资料:
  • 我有一个Excel工作表,其中一栏填充了专利号。我需要提取每个相应专利的标题,并将其放在专利号旁边的单元格中。因此,代码应执行以下操作: 访问espacenet.com并打开需要名称的专利号。 获取标题。 将其放在所需单元格的Excel工作表中。 这是一个完美适用于第一个专利号的代码,但在这之后会立即出现错误。错误显示:“运行时错误'-2147417848(80010108)': 自动化错误调用的

  • 上面的代码只显示了三个表单,而在Chrome的页面中显示了13个 元素。但如果我查看页面源代码( Chrome中),源代码只显示BeautifulSoup刮过的三种形式。 我怎样才能刮掉所有的表格?

  • 输入某个网址url,可以提取对应网页的所有图片,并以缩略图展示出来,点击缩略图可查看原图。 [Code4App.com]

  • 问题内容: 我想有一个header.html,它定义我所有网页的标题如何。如何将此header.html插入顶部的其他网页? 可能会有更好的方法来实现要共享的公共标头。由于我仍然认为自己是html的新手(但不适合编程),因此我愿意接受更好的建议。 谢谢。 编辑:有用的答复提到了使用PHP。但是,我使用AngularJS作为前端,而我的PHP后端仅仅是一个纯REST服务器。我更喜欢用AngularJ

  • 我正在实现一个网络爬虫,我正在使用Crawler4j库。我不是得到一个网站上的所有链接。我试图使用Crawler4j提取一个页面上的所有链接,但遗漏了一些链接。 这是页面上的URL列表,这是Crawler4J给出的URL列表。 我查看了crawler4j使用的'HTMLContentHandler.java'文件来提取链接。在此,仅提取与“src”和“href”链接相关联的链接。 我发现这些文件的

  • 我正在使用selenium web驱动程序来获取使用以下逻辑存在的所有链接: 但它只返回以http开头的链接,而不返回java脚本中的链接。我如何获得这些链接?