原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了?

浏览器请求数据方式:浏览器向服务器的api(例如这样的字符串:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词)发送请求,服务器返回json,然后解析该json,就得到请求数据了

同理:用Python向api发送请求,获得json,解析json,得到数据

即关键在于得到api

api获取:

将鼠标放在上图图示位置,将显示该用户的一些信息,这些信息就是动态加载出来的。当鼠标放在该位置时,浏览器向服务器api发出请求,得到json,再解析便得到下图所示数据

在该网页反键选择检查源代码,按图示点开选项:

然后将鼠标移动到网页界面用户上(箭头位置),会发现右边多出两个请求信息,如图:

点击下面一个,红色方框内的链接,就是要找的api接口

直接用浏览器打开该api即可看到json,如下图

下面用python代码请求该api并解析

import requests

import json

#api

url='https://www.zhihu.com/api/v4/members/wisphilo?include=allow_message%2Cis_followed%2Cis_following%2Cis_org%2Cis_blocking%2Cemployments%2Canswer_count%2Cfollower_count%2Carticles_count%2Cgender%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics'

#header的目的是模拟请求,因为该api设置了反爬取

header={

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'

}

doc=requests.get(url,headers=header)#发起请求

doc.encoding='utf-8'#设置编码为utf-8

data=json.loads(doc.text)#将json字符串转为json

#根据位置查找数据

print('用户名:',data.get('name'))

print('个人描述:',data.get('headline'))

print('职务:'+data.get('employments')[0].get('job').get('name'))

print('回答:',data.get('answer_count'))

print('文章:',data.get('articles_count'))

print('关注者:',data.get('follower_count'))

另外查找数据最好用在线json格式化再查找,不然很难看出自己要的数据在哪eg:

一般网页的api都有规律可寻,用for循环控制变换字符即可实现自动爬取

上述代码运行结果:

和该界面对照

以上

利用selenium并使用gevent爬取动态网页数据

首先要下载相应的库 gevent协程库:pip install gevent selenium模拟浏览器访问库:pip install selenium selenium库相应驱动配置  https: ...

python爬取动态网页2,从JavaScript文件读取内容

import requests import json head = {"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) ...

Python:将爬取的网页数据写入Excel文件中

Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

selenium抓取动态网页数据

1.selenium抓取动态网页数据基础介绍 1.1 什么是AJAX AJAX(Asynchronouse JavaScript And XML:异步JavaScript和XML)通过在后台与服务器进 ...

R语言爬取动态网页之环境准备

在R实现pm2.5地图数据展示文章中,使用rvest包实现了静态页面的数据抓取,然而rvest只能抓取静态网页,而诸如ajax异步加载的动态网页结构无能为力.在R语言中,爬取这类网页可以使用RSele ...

python爬取某个网页的图片-如百度贴吧

python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...

Python 爬取单个网页所需要加载的地址和CSS、JS文件地址

Python 爬取单个网页所需要加载的URL地址和CSS.JS文件地址 通过学习Python爬虫,知道根据正式表达式匹配查找到所需要的内容(标题.图片.文章等等).而我从测试的角度去使用Python爬 ...

利用Python爬取朋友圈数据,爬到你开始怀疑人生

人生最难的事是自我认知,用Python爬取朋友圈数据,让我们重新审视自己,审视我们周围的圈子. 文:朱元禄(@数据分析-jacky) 哲学的两大问题:1.我是谁?2.我们从哪里来? 本文 jacky试 ...

爬虫(三)通过Selenium + Headless Chrome爬取动态网页

一.Selenium Selenium是一个用于Web应用程序测试的工具,它可以在各种浏览器中运行,包括Chrome,Safari,Firefox 等主流界面式浏览器. 我们可以直接用pip inst ...

随机推荐

lucene 使用注意

1.建立索引时,忘记writer.close(); 结果: 正常结果:

About Wisdom

All human wisdom is summed up in two words --- wait and hope.人类所有的智慧可以归结为两个词---等待和希望. —— Alexandre D ...

ADO.NET——获取output 和 return值

程序代码 //存储过程 //Create PROCEDURE MYSQL // @a int, // @b int //AS // return @a + @b //GO SqlConnection ...

python学习之路-11 多线程、多进程、协程

python内置队列模块 queue queue的四种队列 q = queue.Queue() # 先进先出队列 q = queue.LifoQueue() # 后进先出队列 q = queue.Pr ...

android系统的图片资源

使用系统的图片资源的好处有,一个是美工不需要重复的做一份已有的图片了,可以节约不少工时:另一个是能保证我们的应用程序的风格与系统一致. 1.引用方式 在源代码*.Java中可以进入如下方式引用: my ...

在dotnetcore的MVC项目中,创建支持 vue.js 的最小工程模板

网上Vue模板不是最新的,我自己做了一个最新的支持 Vue.js 的最小工程模板,方便大家从 Hello world. 入门, 在 VS2017 里学习,并扩展出自己的项目. 下面是创建步骤: 1.在 ...

js switch 用法

//获取星期 //例子1 var day=new Date().getDay(); switch (day) { : x="Today it's Saturday"; break; ...

js 序列化

Python 序列化 字符串 = json.dumps(对象)  对象转字符串 对象 = json.loads(字符串)   字符串转对象 Javascript 字符串 = JSON.stringif ...

更改linux下文件目录权限、拥有者及用户组

在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建者,谁创 ...

python爬取动态网页_python爬取动态网页数据,详解相关推荐

  1. dicom多帧转换_Python解析多帧dicom数据详解

    概述 pydicom是一个常用python DICOM parser.但是,没有提供解析多帧图的示例.本文结合相关函数和DICOM知识做一个简单说明. DICOM多帧数据存储 DICOM标准中关于多帧 ...

  2. python的类和对象_Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象.分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态): 属性一般是一个个变量:方法是一个个函数: #类的属性 ...

  3. python模拟登录详细教程_Python模拟登录requests.Session应用详解

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  4. python中sort函数字符串_python中的sort方法使用详解

    < Python树莓派编程>--3.3 Python入门 本节书摘来自华章出版社<Python树莓派编程>一书中的第3章,第3.3节,作者:[美]沃尔弗拉姆·多纳特(Wolfr ...

  5. python find的使用方法_Python中的rfind()方法使用详解

    Python中的rfind()方法使用详解 rfind()方法返回所在子str 被找到的最后一个索引,或者-1,如果没有这样的索引不存在,可选择限制搜索字符串string[beg:end]. 语法 以 ...

  6. python语言程序的特点_Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

  7. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  8. python类初始化导入库_Python中optparser库用法实例详解

    本文研究的主要是Python中optparser库的相关内容,具体如下. 一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库.当然了,不敢说理解的很到位,但是足以应付正常 ...

  9. python中exchange函数使用_python基于exchange函数发送邮件过程详解

    python基于exchange函数发送邮件过程详解 作者: shuzihua 更新时间:2020-11-06 10:40:35 原文链接 1.Python hasattr() 函数 描述 hasat ...

  10. python对文件的处理_python文件处理fileinput使用方法详解

    这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 fileinput模块 ...

最新文章

  1. 微服务治理实践:服务查询
  2. fegin通信中速度慢等待解决异常
  3. Android 页面进行镜像反转-面试
  4. Apache的压缩与缓存-----网页优化
  5. 经典题目螺旋方阵的详解
  6. python listbox排序_python – 从tkinter.Listbox中提取项目列表
  7. C++中绘图工具EasyX基本操作
  8. PAT乙级 1003
  9. header()函数使用说明
  10. 步进电机的加速时间是怎么样的?
  11. [2018.07.12 T2] B君的第二题
  12. 数字信号处理——线性相位型(Ⅱ、Ⅳ型)FIR滤波器设计(2)
  13. 掩膜裁剪tif步骤_ENVI中掩膜掩膜操作及影像分类教程
  14. Java程序员面试分类真题(后附答案解析)
  15. AXI5 new feature: support atomic transaction
  16. ckplayer-超酷网页视频播放器的使用
  17. Unity 镜像sprite
  18. m蜂窝移动通信系统中越区切换的matlab仿真分析
  19. STM32入门(十二)----RCC
  20. elasticsearch启动报错:FileAlreadyExistsException:/home/es/elasticsearch-6.3.0/configelasticsearch.keysto

热门文章

  1. mysql时间戳查询_mysql查询时间戳(TIMESTAMP)
  2. JS 如何将 HTML 页面导出为多页 PDF
  3. 计算机应用基础名言名句大全,计算机应用基础实训指导书-上.doc
  4. 来CSDN两年了,发现一些CSDN网页的BUG
  5. 『Java练习生的自我修养』java-se进阶³ • 线程的等待与唤醒
  6. Windows10原创知识
  7. linux怎么看一个端口是否可用,LINUX中查看某个端口是否被占用的方法
  8. linux系统怎么看raid,linux如何查看硬盘及raid信息
  9. 膳食锌缺乏或过量对人体肠道菌群及健康的影响
  10. 高通艾和志:魏牌、毫末和高通是业内最强组合