设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

QQ不能直接注册帐号

查看: 118|回复: 0

[问题求助] python爬虫对于Ajax请求的处理

[复制链接]
发表于 2020-6-2 17:37:43 | 显示全部楼层 |阅读模式

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,存储后备用。
  • 如何控制频率和利用代理破除反爬限制

如果觉得帖子内容对你有帮助,请点击【评分】给我增加好评度,加分不会扣除自己的积分。

论坛已启用匿名发帖功能,快发帖试试新功能吧

发考试战报,来这里申请勋章,菜鸟变高手从此走上人生巅峰

注意!恶意灌水,将会被收回所得积分 网络技术电报群 http://ttttt.me/cciehcie
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )

GMT+8, 2020-8-15 04:57 , Processed in 0.074475 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz!

© 2001-2020 HH010.COM

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