ajax 关闭弹窗并跳转到url_Python 爬虫 | Ajax数据爬取
Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。
通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
就是很多网站都有下拉加载,这时会加载更多数据,但是不会跳转界面,这就是Ajax加载过程。这时直接用requests请求是无法获取有效数据的。
目录:
1、准备环境
2、Ajax长什么样
3、分析请求
4、获取数据
目标网站:
http://quote.eastmoney.com/center/gridlist.html#hs_a_board
1、准备环境
首先要确保安装好请求库requests,若没有安装可以参考前面的文章——爬虫开发环境部署
2、Ajax长什么样
这个网站点击下一页是不会跳转网页的,所有的数据都会在原有的界面展示。这就是使用了Ajax的网站,像下拉加载这些都采用了Ajax。
3、分析请求
打开开发者工具,这里以Chrome浏览器为例
在Elements选项卡中可以查看网页的源代码,这里没有我们要寻找的目标,切换至Network选项卡
请求太多了先清空请求,点击下一页
可以看到多了两个请求,点击第一个请求查看详细信息
这里切换到Response选项卡查看返回的数据
数据被压缩成一行了,点击格式化方便查看
可以发现网页展示的数据就是从这个请求获得的,返回Headers选项卡查看url
把url挑出来
http://10.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112404011455193932689_1586401605072&pn=2&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:13,m:0+t:80,m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1586401605111
这是第二页的url
跳出第三页的url看看
http://10.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112404011455193932689_1586401605072&pn=3&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:13,m:0+t:80,m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1586401605265
可以看到只有参数pn变了
代码如下:
for i in range(197):url = 'http://60.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112408744624686429123_1578798932591&pn=' '%d&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:13,m:' '0+t:80,m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,' 'f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1586266306109' % i
打开url看看内容
用正则表达式把我们想要是数据挑出来就好了
这里传入网页源代码,获取收盘价、成交量、股票代码、名称、最高股价、最低股价、开盘价
def get_stock_data(text):"""获取股票代码、名称、PE"""com = re.compile('"f2":(?P<end>.+?),.*?"f6":(?P<volume>.+?),.*?"f12":"(?P<number>.+?)",.*?"f14":"(?P<name>.+?)"'',.*?"f15":(?P<max>.+?),.*?"f16":(?P<min>.+?),.*?"f17":(?P<start>.+?),', re.S)ret = com.finditer(text)for i in ret:yield {'number': i.group('number'),'name': i.group('name'),'start': i.group('start'),'max': i.group('max'),'min': i.group('min'),'end': i.group('end'),'volume': i.group('volume')}
觉得写的不错顺便点个赞呗
ajax 关闭弹窗并跳转到url_Python 爬虫 | Ajax数据爬取相关推荐
- python下载图片、已知url_python 爬虫之requests爬取页面图片的url,并将图片下载到本地...
import requestsfromlxml import etree import time import os import re requests=requests.session() web ...
- 简单爬虫Ajax数据爬取——今日头条图片爬取
一.Ajax简介 什么是Ajax? Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页 ...
- Python3 爬虫学习笔记 C03 【Ajax 数据爬取】
Python3 爬虫学习笔记第三章 -- [Ajax 数据爬取] 文章目录 [3.1]Ajax 简介 [3.2]解析真实地址提取 [3.1]Ajax 简介 Ajax - Asynchronous Ja ...
- 携程ajax,Python爬虫实战之爬取携程评论
一.分析数据源 这里的数据源是指html网页?还是Aajx异步.对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍. 提示:以下操作均不需要登录(当然登录也可以) 咱们先在浏览器里面搜索携 ...
- 《PYTHON3网络爬虫开发实践》——第六章 Ajax数据爬取
第六章 Ajax数据爬取 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:这是因为requests 获取的都是原始的HTML文档,而浏览器中的页面则是经过Java ...
- (五) 爬虫教程 |Ajax 数据爬取
一.前言 有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用 requests 得到的结果并没有,这是因为requ ...
- Python爬虫——Ajax数据爬取
前言 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样,在浏览器中可以看到正常显示的页面数据,但使用requests得到的结果并没有.这是因为在requests获得 ...
- 爬虫:Ajax数据爬取
目录 1.什么是Ajax 1.1 实例的引入 1.2 基本原理 2.Ajax分析方法 1.查看请求 2.过滤请求 3.Ajax结果提取 1.分析请求 2.分析响应 3.例子 我们在用 requests ...
- python爬虫基础Ⅱ——Ajax数据爬取、带参请求:QQ音乐歌单、QQ音乐评论
文章目录 基础爬虫部分Ⅱ Ajax技术 json 1. Network 2. XHR怎么请求? 3. 什么是json? 4. json数据如何解析? 带参数请求 1. 复习 2. params 3. ...
- ajax headers 参数有什么用_动态爬虫(ajax)-爬取bilibili热门视频信息
前言 使用python爬虫爬取bilibli每日热门视频的数据 使用的第三方软件包括requests.my_fake_useragent 一.页面分析 在进行爬虫之前,我们先要对要爬取的页面进行分析, ...
最新文章
- 定义const变量是不可以赋值_定义好 const 变量
- umi搭建react+antd项目(一)环境配置
- 腾讯云TStack,带着“数据中心”游云南
- 中英翻译(基于百度翻译)
- 厉害了,Servlet3的异步处理机制
- [转帖]关于win7共享的问题和解答
- Nginx源码分析 - HTTP模块篇 - HTTP Request解析过程(22)
- Jxls异常 Cannot load XLS transformer. Please make sure a Transformer impleme
- java抓取豆瓣网页内容_爬取豆瓣网页上的电影(包括图片,评分,和简介等)
- masm5.0与masm32
- [uboot 移植]uboot 基础知识
- 网站搭建niushop系统,全面搭建,打包app,h5详细教程
- 搜狗站长平台没有sitemap的接口无法提交sitemap?该怎么提交?【已解决】
- [解决]Converting circular structure to JSON
- 网络工程师——Private VLAN
- 如何利用CCleaner快速查找重复文件?
- JUC-BlockingQueue二
- 360doc个人图书馆解决复制问题
- php nl2p,PHP函数nl2br()与自定义函数nl2p()换行用法分析,nl2brnl2p_PHP教程
- Cocos creator 学习笔记(2)
热门文章
- SCVMM 2012 部署测试之五向SCVMM中添加Hyper-V主机
- iOS网络编程-ASIHTTPRequest小例子-数据请求队列
- 在mobile5.0上实现滑动效果控件
- OpenLayers学习入门篇
- 微信小程序背景音乐的调试
- CentOS7-下搭建Maven私服Nexus环境
- 一个时代的落幕!继苹果、火狐、Linux Lite之后,微软也放弃Flash
- java打印等腰三角形_为什么大家都说Java中只有值传递?
- securecrt批量登录linux,SecureCRT批量配置使用会话key
- java.lang.UnsatisfiedLinkError: JNA support (com/sun/jna/android-arm/libjnidispatch.so) not found