如何收集多个网页的h1标题?

How do I collect the h1 headings of a number of web pages?

我想浏览几个网页

 theURLs := #('url1' 'url2' 'url3')

并获取第一个h1标题的内容

theURLs collect: [ :anURL |  page := HTTPClient httpGetDocument: anURL.
                             page firstH1heading].

问题

我需要在#firstH1heading 的地方放什么?

欢迎回答 Squeak / Pharo / Cuis。

备注

在吱吱声

HTTPClient httpGetDocument: 'http://pharo.org/'

回馈一个

MIMEDocument

所以我希望做类似

的事情
theURLs collect: [ :anURL |  page := HTMLDocument on: 
                                     (HTTPClient httpGetDocument: anURL).
                             page firstH1heading].

但是在 Squeak 4.6 中没有 HTMLDocument class 虽然它似乎曾经有一个。 (http://wiki.squeak.org/squeak/2249). The Wiki 说我应该加载一个包 Network-HTML。Squeak 4.6 的 SqueakMap 目录中有一个包 'XMLParser-HTML'。可以用这个代替吗?

在 Pharo 中,您可以使用 Soup package。通过配置浏览器安装它。

您使用 Zinc 从 URL 中检索文档,并使用 Soup 找到第一个 <h1> 标签,如下所示:

|contents soup body|
contents := ZnClient new get: 'http://zn.stfx.eu/zn/small.html'.
soup := Soup fromString: contents.
body := soup body.
body findTag: 'h1'

我更新了配置。您可能需要刷新目录

Name: ConfigurationOfSoup-StephanEggermont.75
Author: StephanEggermont
Time: 14 December 2015, 1:39:52.307715 pm
UUID: 6c11fb83-5299-4852-9563-73ecc34992a0
Ancestors: ConfigurationOfSoup-FrancoisStephany.74

Adopted bug fix to stable 1.7.1 , added Pharo 5 versions