通常,爬取网站,最简单的就是静态网页,一般 python的request+beautifulsoup就可以搞定。
困难的是动态网页的爬取。
动态网页爬取一般有以下几种方法:
1. 逆向回溯(即一层层找接口,或底层链接,想稳定快速爬取,可考虑这个,相当费时费力)
2. 渲染动态网页法( 使用PySide或ghost.py,但是由于太过久远已经被时代淘汰了,所以这种方法并不优雅)
3. 模拟浏览器法(如使用Selenium等,见下)
当今常用的三个常用的浏览器驱动:
库 | Selenium | Puppeteer | Playwright |
---|---|---|---|
JavaScript 支持 | 官方支持 | 官方支持 | 官方支持 |
Python 异步支持 | 无 | 第三方,而且 bug 不少 | 官方支持 |
Python 同步支持 | 官方支持 | 无 | 官方支持 |
维护者 | 社区 | 微软 | |
可操作性浏览器 | Chrome/Firefox/Safari/Edge | Chrome/Firefox | Chrome/Firefox/Safari/Edge |
模拟操作丰富度 | 一般 | 极好 | 很好 |
Cookie 支持 | 一般 | 一般 | API 非常友好 |
代理切换支持 | 一般 | 一般 | 极好 |
所以,Playwright是未来趋势,学会用Playwright即可
参考:
爬虫爬取动态网页的三种方式简介 | K0rz3n's Blog