python - 爬虫获取所有数据的思路是什么
ringa_lee
ringa_lee 2017-04-18 10:19:45
[Python讨论组]

比如一个网站有下一页,我要怎么能把所有下一页爬完呢,用递归吗,递归深度不会有限制吗,初学,希望得到指点

ringa_lee
ringa_lee

ringa_lee

全部回复(5)
大家讲道理

递归,消息队列,储存已经爬取的页面(redis, 数据库)

巴扎黑

如果你指的所有数据是一个小域名下的所有数据,并且你并不想细究原理,那就去学scrapy。

如果你指的所有数据是全网数据,并且想搞明白爬取时是广度优先还是深度优先等等原理,那首先你得有10000+服务器。

怪我咯

如果是同一个网站,用递归爬去呀,同一个网站怎么会爬不完

巴扎黑

如果网站的结构是简单重复的,可以先分析页码url的规律,然后直接从第一页拿到总页数,然后手动构造出其他页的url。

PHP中文网

首先大致说下爬取的思路,如果页面链接很简单,类似 www.xxx.com/post/1.html这种有规律可循的页面,可以写递归或者循环去爬取

如果页面链接是未知的,可以获取爬取的页面去解析标签的链接,然后继续爬取,在这一过程中,你需要将已经爬取过的链接存下来,爬新链接的时候去寻找一下是否之前爬取过,然后也是通过递归去爬取

爬取思路 通过url爬取->解析爬取内容中新的url->通过url爬取->....->当爬取到一定数量或者很长一段时间没有新链接的时候跳出递归

最后在python界有一个很厉害的爬虫框架scrapy,基本上把爬虫常用套路全部都封装好了,稍微学习下就会了传送门

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号