Python反爬之破解动态页面(一)

本文介绍了如何不使用selenium,通过分析js源码和Ajax请求,来爬取基于Ajax动态生成的页面内容。以一个化学论文期刊数据库网站为例,展示了从获取搜索参数到解析文章列表的完整过程,揭示了动态页面抓取的基本思路。
摘要由CSDN通过智能技术生成

前言

可能很多同学看到关于动态页面的反爬(比如基于Ajax的网页)第一反应就是selenium+headless browser,这个方法好是好,然而是基于真实的浏览器,虽然没有界面,但是也占用很多内存。小型的测试用selenium的确不错,但是一旦业务量大起来了,需求复杂了,甚至需要分布式爬虫操作时,这个方法对于内存的开销实在受不了。

那么有不用selenium的方法吗?当然有,今天就教大家硬刚基于Ajax的动态页面,从js的源码里边分析,一步一步倒推出页面的产生过程,从而获取我们所需要爬取的元素。

正文

一般来说,页面产生内容有以下几种方式:

  • 数据在页面内的js里边,由脚本动态渲染。直接右键查看源码搜索就能看到。
  • 数据在其他的js文件里边,由脚本动态渲染。需要找到哪个js包含这些数据。
  • 数据由Ajax生成,动态渲染。查看哪个XHR包含这些数据。
  • 数据由jsonp生成,动态渲染。查看哪个Script包含这些数据。


现在我们来分析一个网站。http://pubs.rsc.org/。这是一个关于化学的论文期刊数据库网站,可以通过关键字搜索论文或者书籍等。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值