2

我正在尝试验证我的所有页面链接是否有效,并且如果所有页面都具有指定的链接(如联系方式),也与我类似。我使用 python 单元测试和 selenium IDE 来记录需要测试的操作。所以我的问题是我可以验证循环中的链接还是我需要自己尝试每个链接?我试图这样做,__iter__但它没有得到任何关闭,这可能是我不擅长 oop 的原因,但我仍然认为我必须有另一种测试链接的方法,而不是单击它们并逐个记录。

4

4 回答 4

1

尽管该工具在 Perl 中,但您检查过 linklint吗?这是一个应该完全满足您需求的工具。它将解析 HTML 文档中的链接,并在它们损坏时告诉您。

如果您尝试从 Python 脚本自动执行此操作,则需要将其作为子进程运行并获取结果,但我认为它会为您提供所需的内容。

于 2010-08-03T15:16:58.183 回答
1

我会为此使用标准的 shell 命令:

  • 您可以使用 wget 检测断开的链接
  • 如果您使用 wget 下载页面,则可以扫描生成的文件grep --files-without-match以查找没有联系链接的文件。

如果你在 windows 上,你可以安装cygwin或者安装这些工具的win32 端口

use wget to detect broken links编辑:从上面的链接嵌入信息:

每当我们发布一个公共站点时,在其上运行爬虫总是一个好主意,这样我们就可以检查损坏的页面和错误的 URL。WGET 有一个递归下载命令,并与 --spider 选项混合,它只会爬取站点。

1) Download WGET

    Mac:
    http://www.statusq.org/archives/2008/07/30/1954/
    Or use macports and download wget.

    Windows:
    http://gnuwin32.sourceforge.net/packages/wget.htm

    Linux:
    Comes built in
    ----------------------------------------

2) In your console / terminal, run (without the $):

    $ wget --spider -r -o log.txt http://yourdomain.com

3) After that just locate you "log.txt" file and at the very bottom
 of the file will be a list of broken links, how many links there 
are, etc.
于 2010-08-03T15:21:19.140 回答
0

究竟什么是“测试链接”?

如果这意味着它们导致非 4xx URI,恐怕您必须访问它们。

至于给定链接的存在(如“联系人”),您可以使用 xpath 查找它们。

于 2010-08-03T15:09:14.000 回答
0

您可以(作为另一种选择)使用 BeautifulSoup 解析页面上的链接并尝试通过 urllib2 检索它们。

于 2010-08-03T18:19:41.240 回答