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&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
我实现了一个爬虫,它可以做类似的事情:
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&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