js抓取网页内容(如何模拟请求和如何解析HTML的链接和标题?(一))

优采云 发布时间: 2021-09-15 17:02

  js抓取网页内容(如何模拟请求和如何解析HTML的链接和标题?(一))

  虽然这是很久以前的事了,但这个主题似乎已经解决了这个问题。但是看到很多答案的方式有点太沉重了。这是一种效率更高、资源消耗更少的方法。由于标题并不表示您需要什么,因此这里的示例采用主页上所有帖子的链接和标题

  首先,请记住,浏览器环境消耗大量内存和CPU,应尽量避免使用模拟浏览器环境的爬虫代码。请记住,对于一些前端呈现的web页面,尽管我们无法在HTML源代码中看到所需的数据,但它更有可能通过另一个请求获得纯数据(可能以JSON格式存在)。不用模拟浏览器,我们可以节省解析HTML的开销

  然后打开beimailman论坛主页,发现其主页的HTML源代码中没有显示文章的内容。然后,它很可能通过JS异步加载到页面。通过浏览器开发工具(通过OS X或win/Linux下的Command+option+I使用Chrome浏览器)F12)加载主页时分析请求时,很容易在以下屏幕截图中找到请求:

  

  从截图中选择的请求获得的响应是主页的文章链接。可以在“预览”选项中查看渲染预览:

  

  到目前为止,我们确信此链接可以获得主页的文章和链接

  在headers选项中,有该请求的请求头和请求参数。通过python模拟这个请求,我们可以得到相同的响应。然后,我们可以用Beauty soup等库解析HTML,以获得相应的内容

  关于如何模拟请求以及如何解析HTML,请转到我的专栏进行详细介绍,这里不再重复

  通过这种方式,您可以在不模拟浏览器环境的情况下获取数据,这大大提高了内存、CPU消耗和爬网速度。编写爬虫程序时,请记住,除非必要,否则不要模拟浏览器环境

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线