Jaunt Webcrawler API 没有正确处理相对 URL

Jaunt Webcrawler API doesn't treat correctly relative URLs

我实现了一个爬虫,它可以做类似的事情:

repeat
 Visit each page and get all links that have not been visited.
until no new links

它正在抓取的页面是

https://www.mercadoribeirao.com.br

我得到的所有 link 都像:

<a href="produtos.php?id_sub=104&amp;fruta-nacional" class="new_sub_menu">
                            Fruta Nacional                      </a>

在第一页中,它正确地获得了 links,例如:

https://www.mercadoribeirao.com.br/produtos.php?id_sub=253&espumante-nacional
https://www.mercadoribeirao.com.br/produtos.php?id_sub=245&frances
https://www.mercadoribeirao.com.br/produtos.php?id_sub=246&italiano
https://www.mercadoribeirao.com.br/produtos.php?id_sub=248&nacional
https://www.mercadoribeirao.com.br/produtos.php?id_sub=414&outros

但是当它访问子页面时 url 连接不正确:

https://www.mercadoribeirao.com.br/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=197&salgadinho-e-snack
https://www.mercadoribeirao.com.br/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=198&sardinha,-atum-e-cia
https://www.mercadoribeirao.com.br/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=388&micoses/calos/produtos.php?id_sub=199&sopas-e-cremes

可能是因为 jaunt 试图自动完成相对 links 以在 url 的末尾连接 link 而不是在基页上。

由于某种原因,这些新创建的 links 是正确的,然后总是有新的 links 被访问,这种情况会无限期地发生,过程永远不会结束。

是否有解决此问题的方法?

该错误与以“/”结尾的 URL 有关。当必须将相对于绝对链接转换为这些文件时,它会误解自己。

Jaunt 的 1.1.3 版本中识别并修复了该错误 API:http://jaunt-api.com/Jaunt%201.1.3%20Release%20Notes.txt