昨天有小伙伴找我,新浪新闻的国内新闻页,其他部分都是静态网页可以抓到,但是在左下方的最新新闻部分,不是静态网页,也没有json数据,让我帮忙抓一下。大概看了下,是js加载的,而且数据在js函数中,很有意思,就分享出来给大家一起看看!

抓取目标

今天我们的目标是上图红框部分,首先我们确定这部分内容不在网页源代码中,属于js加载的部分,点击翻页后也没有json数据传输!

但是发现有个js的请求,点击请求,是一行js函数代码,我们将其复制到json的视图查看器中,然后格式化一下,看看结果

发现里面有可能存在我们需要的内容,比如url、title、intro这3个参数,猜测就是对应的新闻URL、标题、简介

只是其内容,需要在进行处理一下,我们写到代码中看看

开始写代码

先导入库,因为最终需要从字符串中截取部分,所以用requests库获取请求,正则re匹配内容即可。然后我们先匹配出上述3项

可以看到,url中存在 \ \,标题和简介是以\ \ u4e09的形式存在,这些就是我们需要处理的下一步了!

先用replace函数剔除url中\ \,即可得到url,后面的\ \ u4e09则是unicode编码,可以直接解码得到内容,直接写代码了

解码用了eval函数,内容为u“ + unicode编码内容 + “的形式即可解码!

这样,就取出了本页的所有新闻和URL的相关内容,在外层加上循环,即可抓取所有的新闻页,任务完成!

后记

新浪新闻的页面js函数比较简单,可以直接抓到数据,如果是比较复杂的函数的话,就需要深入理解前端知识了,这也是为什么学爬虫,需要学习前端知识的原因!

ps:上文所用的json查看器是第三方的网站,直接百度即可找到很多,当然也可以直接将上述抓包的内容修改,然后用json读取数据也是可以的!

基本代码没有多少,如果有看不清楚的小伙伴,可以私信我获取代码或者一起研究爬虫哦!

python爬取js加载的数据_Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程...相关推荐

  1. js与python 抓包_Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程

    昨天有小伙伴找我,新浪新闻的国内新闻页,其他部分都是静态网页可以抓到,但是在左下方的最新新闻部分,不是静态网页,也没有json数据,让我帮忙抓一下.大概看了下,是js加载的,而且数据在js函数中,很有 ...

  2. layui 如何动态加载局部页面_python爬虫入门实战(四)!爬取动态加载的页面!

    今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...

  3. python爬虫抖音_Python 爬虫——抖音App视频抓包

    APP抓包 前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取.现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视 ...

  4. 获取iframe嵌套页面的数据_爬虫学习十二之案例开发获取搜索页面数据

    准备一个定时任务 准备一个运行类 将之前封装的HttpClient拿过来,放到一个utils包中 编写定时类的定时方法 我们在京东中搜索手机,可以看到URL 点击下一页,观察URL的变化 其中page ...

  5. python爬虫动态加载页面_Python+Selenium爬取动态加载页面(2)

    注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...

  6. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据

    http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...

  7. python爬取js加载的数据_JS动态加载数据不会爬?老司机教你两个方法爬取想要的数据...

    学习Python的人绝大部分都是在用Python做爬虫,毕竟对于爬虫而言Python是不二选. 但是一般简单的静态页面网站还是很好爬取的,对于很多动态加载的网站就不知道怎么办了,今天小编就给大家介绍两 ...

  8. 教你用Python爬取动态加载的数据

    例子1:爬取豆瓣电影中的电影详情数据 url:https://movie.douban.com/ 1.什么是动态加载的数据: 我们通过requests模块进行数据爬取无法每次都是可见即可得,有些数据是 ...

  9. python 异步加载_Python学习笔记4——爬取异步加载数据

    一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...

最新文章

  1. 韩国女主播被中国土豪打赏13万 差点吓晕!网友:真是没见过世面
  2. 华为麦芒5云空间升级_云+AI+5G 华为云联手中软国际引爆线下门店智能化升级
  3. 毕业3年,我换了4份工作:好工作,是这样“熬”出来的
  4. 2017/12/29
  5. 【语音识别】基于matlab GUI HMM 1~9数字语音识别(带面板)【含Matlab源码 1393期】
  6. Go语言编程(七牛云存储团队执笔)
  7. 修改Gravatar生成的默认头像
  8. win10如何打来计算机的工具,电脑系统教程:Win10自带解压缩文件工具如何使用
  9. Android创建本地文件时没有权限的怪现象
  10. 更换win10计算机账户,win10更换账户的方法是什么_win10换账号登录的方法
  11. Visual Studio 2017 智能提示英文怎么切换成中文?
  12. 无法连接虚拟设备 floppy0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?
  13. 对docker一些认知
  14. SAP-FI 科目的统驭科目类型设置错了如何更改
  15. 集成电路:芯片时代的到来
  16. 医学影像配准 NCC Loss
  17. 2022 七校联合NewStarCTF 公开赛赛道 WEEK2|MISC
  18. 看完知乎上500条答案,我为大家整理了这21个B站学习类UP主
  19. Unskilled in English is looked down on by people (composition)
  20. 【解惑】杨中科说给弟弟的话

热门文章

  1. 从营销手段到商业新基建,“以旧换新”还有多少价值等待挖掘?
  2. 元气森林难撕“网红”标签
  3. python输出指定范围素数_怎么用python输出指定范围内的质数?
  4. python图片目标检测_图像中的目标检测(HOG)
  5. c++ 拷贝构造函数_禁止拷贝构造,禁止bug
  6. java多态和继承_Java 继承与多态的深入理解
  7. php oauth api,PHP实现人人OAuth登录和API调用
  8. Python3 中的最大整数和最大浮点数
  9. 10个python使用技巧
  10. pycharm如何修改默认浏览器?修改成chrome