搜索
查看: 106|回复: 0

[其他] python爬虫对于Ajax请求的处理

[复制链接]
  • TA的每日心情
    开心
    2020-3-24 17:42
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2020-6-2 17:28:24 | 显示全部楼层 |阅读模式

    Python爬虫Ajax动态加载知识点讲解,Ajax动态加载从网页的url加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载出更多的内容,并把这些内容传输到网页中
    动态加载页面信息的提取

    当我们浏览一个新闻类的网站,例如微博,搜狐,今日头条等,因为这些网站的内容很多,所以当我们搜索某一关键词的信息后,服务器只会向我们返回少量的数据,微博和头条是返回指定数量的数据,当我们再次向下刷新的时候,会再次通过Ajax请求返回指定数目的数据(如果你的网络不好时,会出现一个表示正在加载的小圆圈的动画效果)。知乎是当浏览器的滚动条触底时,再次提取数据。这就产生了一个问题,通过爬虫如何来提取通过Ajax请求动态加载的数据呢?
    它的工作原理是:从网页的url加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载更多的内容,“填充”到网页里。这就是为什么如果你直接去爬网页本身的url,你会找不到页面的实际内容。
    这里,若使用Google Chrome分析”请求“对应的链接(方法:右键→审查元素→Network→清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get参数或者复制Request URL),循环过程。
    • 如果“请求”之前有页面,依据上一步的网址进行分析推导第1页。以此类推,抓取抓Ajax地址的数据。
    • 对返回的json格式数据(str)进行正则匹配。json格式数据中,需从'\uxxxx'形式的unicode_escape编码转换成u'\uxxxx'的unicode编码。
    爬取有两个需要注意的问题:
    • 如何处理js生成的cookie
    可以使用无头浏览器获取大量cookie,存储后备用。
    • 如何控制频率和利用代理破除反爬限制

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注个册吧

    x
    游客
    回复
    您需要登录后才可以回帖 登录 | 注个册吧

    快速回复 返回顶部 返回列表