3

有谁知道可以抓取我的网站并计算我网站内每个页面上的标题数量的工具或脚本?我想知道我的网站中有多少页面有超过 4 个标题 (h1)。我有 Screaming Frog,但它只计算前两个 H1 元素。任何帮助表示赞赏。

4

4 回答 4

1

这是一项非常具体的任务,我只建议您自己编写。您需要的最简单的东西是一个XPATH 选择器来为您提供 h1/h2/h3 标签

计算标题:

  1. 选择任何一种你最喜欢的编程语言。
  2. 为您网站上的页面发出 Web 请求(Ruby、Perl、PHP)。
  3. 解析 HTML。
  4. 调用 XPATH 标题选择器并计算它返回的元素数。

抓取您的网站:

对所有页面执行第 2 步到第 4 步(您可能必须拥有要抓取的页面队列)。如果你想爬取所有页面,那么它会稍微复杂一点:

  1. 爬取你的主页。
  2. 选择所有锚标记
  3. 从每个 URL 中提取 URL,href并丢弃任何不指向您网站的 URL。
  4. 执行 URL-seen 测试:如果您以前看过它,则丢弃,否则排队等待抓取。

URL-Seen 测试:

URL-seen 测试非常简单:只需将您目前看到的所有 URL 添加到哈希映射中。如果您遇到哈希映射中的 URL,则可以忽略它。如果它不在哈希图中,则将其添加到爬网队列中。哈希映射的键应该是 URL,值应该是某种允许您保留标题统计信息的结构:

Key = URL
Value = struct{ h1Count, h2Count, h3Count...}

应该是这样的。我知道这看起来很多,但它不应该超过几百行代码!

于 2013-01-30T16:12:00.450 回答
1

我的Xidel可以做到这一点,例如:

 xidel http://stackoverflow.com/questions/14608312/seo-web-crawling-tool-to-count-number-of-headings-h1-h2-h3 -e 'concat($url, ": ", count(//h1))' -f '//a[matches(@href, "http://[^/]*stackoverflow.com/")]'

-e 参数中的 xpath 表达式告诉它计算哪些页面上的 h1-tags 和 -f 选项

于 2013-01-30T16:19:32.473 回答
0

我在 Code Canyon 中找到了一个工具:Scrap(e) 网站分析器:http ://codecanyon.net/item/scrap-website-analyzer/3789481 。

正如您将从我的一些评论中看到的那样,进行了少量配置,但到目前为止运行良好。

感谢 BeniBela,我也会查看您的解决方案并进行报告。

于 2013-01-30T17:26:22.987 回答
0

您可能会使用xPather chrome 扩展或类似扩展,以及 xPath 查询:

count(//*[self::h1 or self::h2 or self::h3])

谢谢:

于 2018-02-21T00:17:16.920 回答