gpt4 book ai didi

python - Scrapy/crawling - 检测蜘蛛陷阱或无限网站

转载 作者:行者123 更新时间:2023-11-28 19:00:35 24 4
gpt4 key购买 nike

看了“Why Johnny Can’t Pentest: An Analysis of Black-box Web Vulnerability Scanners”,了解到有些网站,比如日历应用,爬虫很难处理。它们似乎是“无限”的网站,可以只包含指向第二天/一个月/一年等的链接。

此外,一些网站设置了蜘蛛陷阱或可能无意中创建了一个类似的系统(页面链接永无止境)。

如果我 a) 得到网站所有者的许可,可以在他们的网站上自由爬行,并且 b) 希望使用 scrapy,我可以使用什么样的技术来确定我是否确实遇到了一个“无限”的网站,而不是特定的有什么例子吗?

注意:我不是在谈论“无限”滚动,而是在有无穷无尽的页面时。

无限网站的一个示例可能是(尽管毫无意义且微不足道):

<?php
if(isset($_GET['count'])){
$count = intval($_GET['count']);
$previous = $count - 1;
$next = $count + 1;
?>
<a href="?count=<?php echo $previous;?>">< Previous</a>

Current: <?php echo $count;?>

<a href="?count=<?php echo $next;?>">Next ></a>
<?
}

?>

您只需点击下一页和上一页即可显示更多页面。

最佳答案

即使分页是无止境的,内容通常也不是。因此,当问题是无限分页时,您可以通过仅在当前页面有内容时获取下一页来防止无限循环,或者,如果您想要最佳,则仅当当前页面具有已知的每页项目数时。

在其他情况下,例如浏览日历,其中某些日期可能有值而其他日期没有,您可以在蜘蛛上硬编码一个限制(如果下一个 URL 涵盖的日期是 X 或更早,则不要进一步解析) .

关于python - Scrapy/crawling - 检测蜘蛛陷阱或无限网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53045620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com