js 抓取网页内容(如何模拟请求和如何解析HTML的HTML了)
优采云 发布时间: 2021-11-23 01:08js 抓取网页内容(如何模拟请求和如何解析HTML的HTML了)
虽然这是很久以前的问题。但是看到很多答案的方法有点太重了,这里提供一个效率更高,消耗资源更少的方法。
图片.png
首先请记住浏览器环境对内存和CPU的消耗非常严重,尽量避免模拟浏览器环境的爬虫代码。请记住,对于一些前端渲染的网页,虽然我们需要的数据在HTML源代码中是看不到的,但更有可能是通过另一个请求(最有可能是JSON格式)得到纯数据。我们不仅不需要模拟浏览器,还可以节省解析HTML的消耗。
那么,我们瞄准北京邮电人论坛!打开北京邮政论坛首页,发现首页的HTML源代码中确实没有页面显示的内容。那么,这个很有可能是通过JS异步加载到页面的。通过浏览器开发工具(OS X下Chrome浏览器通过command+option+i或Win/Linux下通过F12)分析加载主页时的请求,很容易在下面的截图中找到请求:
不知道Python爬虫是如何获取JS生成的URL和网页内容的?在一篇文章中完成
截图中选择的请求的响应是首页的文章链接。您可以在预览选项中看到渲染的预览:
不知道Python爬虫是如何获取JS生成的URL和网页内容的?在一篇文章中完成
至此,我们已经确定这个链接可以拿到首页的文章和链接。在 headers 选项中,有这个请求的请求头和请求参数。我们可以通过 Python 模拟这个请求,得到同样的响应。配合BeautifulSoup等库解析HTML,可以得到对应的内容。
至于如何模拟请求,如何解析HTML,小编有时间再写,记得关注,以后分享给大家。你好文章!
编辑是python开发工程师。这里我整理了一套最新的python系统学习教程,内容包括基础python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等,有需要的可以关注小编。而且我有学习Python基础,有很多学习资料,有兴趣+Q群:895817687