`
游牧民族
  • 浏览: 8150 次
博客专栏
0e19309f-3048-3b23-8de5-1a8a92dd847a
爬虫开发教程
浏览量:0
社区版块
存档分类
最新评论

互联网金融爬虫怎么写-第三课 雪球网股票爬虫(ajax分析)

阅读更多

大家好啊,话说好久没有出来活动了,组织上安排写代码写了很久,终于又被放出来写教程了,感谢大家一直的支持和厚爱,我会一如既往的帮助大家完成爬虫工程师从入门到放弃的升华。

好,Previous on  系列教程:

互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)

互联网金融爬虫怎么写-第二课 雪球网股票爬虫(正则表达式入门)

 

工具要求与基础知识:

工具要求:

1).神箭手云爬虫框架--这个是爬虫的基础;

2).Chrome浏览器和Chrome的插件XpathHelper--这个用来测试Xpath写的是否正确;

3).Advanced REST Client--用来模拟提交请求。

基础知识:

本教程中设计到web的一些基础原理,如果不了解的,最好提前做一些功课。

 

开始ajax分析

咱们废话不多说,接着上一课继续研究雪球网,雪球网通过狂拽的js请求,直接把我们打回原形,辛辛苦苦分析半天的页面前功尽弃,不过不要紧,咱们想爬别人数据,就不能害怕js渲染,前面的课程大多都通过种种方式绕过了js请求的方式来完成爬虫,那么这节课,就通过雪球网,来实实在在的面对一下我们的这个无法回避的敌人--ajax。

首先依然打开chrome的开发者工具,点击network的标签。

 

注意事项:

1).当你打开一个页面,再点开network标签时是不会有信息的,我们需要在打开的情况下,刷新一下页面;

2).为了防止页面突然的跳转而丢失信息,一定要勾上preserved单选框。

 

具体设置如下图:

刷新页面之后,选中xhr小标签之后,可以清晰的看到一个ajax请求,我们点开预览看下:

看到这个画面,是不是觉得祖国的天空又蓝了一点?

 

首先,我们先确保我们可以通过直接访问拿到这个ajax请求,我们先把这个请求的地址复制出来:

http://xueqiu.com/stock/cata/stocklist.json?page=1&size=30&order=desc&orderby=percent&type=11%2C12&_=1469588824728

然后,单独粘贴到浏览器的地址栏中,访问看看效果,为了保证实验的独立性,建议大家打开一个chrome的隐身窗口,这样可以防止之前的cookie的污染。

Oh no~  雪球的码农,我们出来聊一下,我保证不打死你们~

这个时候,很多初学者甚至有一定经验的工程师都方了。不要紧,其实只要不需要登录,我们都还是来得及下班的。

 

一般来说,限制来自于常见的三个情况:

1).cookie ; 2).referer ; 3).url中的参数

由于2)和3)容易测试,我们一般先测试2)和3),测试方法就是参照我们在浏览器中能正常访问到时的请求,删掉我们可能觉得不重要的参数,逐步测试。这里非常强调的是,我们必须使用控制变量法,首先我们需要重现能够成功获取数据的情况,然后在一个一个变量进行调整,最终将无关的参数全部去除,并找到最核心的参数,这里我们还需要使用一个模拟提交请求的工具。我们这里使用的是chrome的插件Advanced REST Client。同类型的工具很多,大家也可以根据自己的习惯挑选。

 

我们先将cookie,referer和url完整的复制到请求中去,点击访问看看能不能拿到数据:

下面结果部分被截断了,结果返回的是正常的数据。

 

那么我们先来确定下2)和3)是否影响,通过删除referer以及url中不相关的参数,重新点击访问我们可以知道,这些参数并不影响返回结果,那这个时候,就只剩下一个可能,就是cookie,当然这个可能是我们最不希望看到了,当然cookie的问题依然分为两种情况:

 

1).http response返回的cookie设置;2).js对cookie的设置。

如果是1),那还没什么大不了的;如果是2)的话,那估计整个人都要不开心了。

第一件事,我们依然要把cookie中不相关的参数,特别是一些统计代码的cookie删除掉,他们通常很长,很干扰,但是毫无作用。常见的百度统计有这样一些cookie: Hm_Lpvt开头和Hm_lvt开头的,当然一般Hm_开头的大概率百度统计的,其他的大家自己在做的过程中去做总结,这里就不一一解释了。

 

删除之后发现,只要有xq_a_token这个cookie就可以返回正常的数据,那么我们现在就找找这个cookie是在哪里设置的。

最简单的,先访问一下首页,看看response:

哈哈,可以看到reponse里面的set-cookie中已经有了xq_a_token这个参数,so easy!我们把这个cookie加入到请求中去,顺利的请求到了数据,可见,在爬取这个ajax之前,只需要先访问一下首页就可以获取我们需要的cookie值了。

 

最后我们再回头看一下ajax的url,经过筛选剩余的url如下:

http://xueqiu.com/stock/cata/stocklist.json?page=1&size=30&order=desc&orderby=percent&type=11%2C12

很高兴的看到了page和size,另外还居然有order和orderby,只能说雪球实在是太贴心,当然最后还有一个type,这个我们多点几个分类就可以看出,这个是沪深一览的分类,相对应的还有美股一览和港股一览。这里我们就不做详细介绍了。

 

分析就到这里,下一课,我们会开始根据这一课的分析,完成整个代码的编写。

另外对爬虫感兴趣的童鞋可以加企鹅群讨论:566855261。

0
1
分享到:
评论

相关推荐

    爬虫游戏-数据抓取分析系统.zip

    爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统爬虫游戏-数据抓取分析系统...

    Python网络爬虫技术-第1章-Python爬虫环境与爬虫简介-教案.docx

    爬虫:Python网络爬虫技术-第1章-Python爬虫环境与爬虫简介-教案Python网络爬虫技术-第1章-Python爬虫环境与爬虫简介-教案Python网络爬虫技术-第1章-Python爬虫环境与爬虫简介-教案Python网络爬虫技术-第1章-Python...

    H3C网络大爬虫1-12期全集.rar

    网络大爬虫第1期-交换专题 网络大爬虫第2期-OSPF专题 网络大爬虫第3期-BGP专题 网络大爬虫第4期-QoS专题 网络大爬虫第5期-NAT专题 网络大爬虫第6期-MPLS 网络大爬虫第7期-安全专题 网络大爬虫第8期-HA专题 ...

    python-爬虫-web-数据分析.zip

    python-爬虫-web-数据分析.zippython-爬虫-web-数据分析.zippython-爬虫-web-数据分析.zippython-爬虫-web-数据分析.zippython-爬虫-web-数据分析.zippython-爬虫-web-数据分析.zippython-爬虫-web-数据分析....

    互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)

    互联网金融爬虫开发是一项在金融领域中逐渐受到重视的技术,它能够从互联网中自动抓取数据,为数据分析和决策提供支持。本系列教程的目的是帮助开发者掌握如何使用爬虫技术,特别是XPath语言,来爬取互联网金融相关...

    手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取

    在本节课中,我们会学习如何处理电商网站尚妆网的AJAX请求,以及如何提取动态加载的内容。这是一个非常实用的教程,因为AJAX技术广泛应用于现代网页中,而动态内容加载也是电商网站常见的技术之一。 首先,我们需要...

    python爬虫作业-维普期刊文章数据爬取爬虫python实现源码.zip

    python爬虫作业-维普期刊文章数据爬取爬虫python实现源码.zippython爬虫作业-维普期刊文章数据爬取爬虫python实现源码.zippython爬虫作业-维普期刊文章数据爬取爬虫python实现源码.zippython爬虫作业-维普期刊文章...

    爬虫开发阶段-爬虫基础-MongoDB数据库-爬虫Scrapy框架和案例.zip

    1. **设置MongoDB连接**:在Scrapy项目中,你可以使用第三方库pymongo来连接MongoDB。在settings.py文件中配置数据库连接信息,如数据库名、用户名和密码。 2. **定义数据模型**:创建一个Scrapy Item类,该类对应...

    QS世界大学排名爬虫代码 - 第三部分

    QS世界大学排名爬虫代码 - 第三部分

    java-crawler-master_java爬虫_爬虫雪球_爬虫_股票_

    在这个“java-crawler-master”项目中,开发者构建了一个专门针对雪球网的爬虫,雪球网是一个知名的投资者社区,提供股票信息、投资组合以及用户讨论等丰富的数据。 该项目的核心知识点主要包括以下几个方面: 1. ...

    爬虫-数据分析-实战项目代码

    爬虫+数据分析实战项目 本代码为《爬虫+数据分析》的源代码,以及Python有趣系列代码,涵盖的内容有。 - 微信 - 豆瓣 - POI - 手机微博 - 简书 - 知乎 - 网络爬虫 - 数据分析 - 机器学习 - 深度学习 供大家学习和...

    网络爬虫-- 个人版

    【网络爬虫-- 个人版】是一个用于网络信息抓取的工具,允许用户免费使用,以便从互联网上搜集和整理所需的数据。网络爬虫在信息技术领域扮演着重要角色,尤其对于数据分析、市场研究、搜索引擎优化(SEO)以及自动化...

    基于nodejs的知乎爬虫,x-zse-96,支持文章,评论,图片下载到本地.zip

    爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的...

    源码-java网络爬虫源码

    源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 源码-java网络爬虫源码 ...

    Python网络爬虫技术-教学大纲.pdf

    《Python网络爬虫技术》教学大纲详细解析 Python网络爬虫技术是一门针对大数据技术类专业的必修课程,旨在培养学生利用Python语言进行网络数据抓取的能力。课程总学时为32学时,包括14学时的理论教学和18学时的实验...

    Python爬虫-爬虫技术-爬虫源码

    * Avengers--复仇者联盟4评论爬虫 实现了模拟登录豆瓣,爬取复仇者联盟4的短评内容,并进行情感分析和生成词云. * AutoWeather--自动天气爬虫 根据本机IP获取物理位置,然后查询天气并用语音播报. * BaiJiaHao--百家...

    Python系列-自动化-机器学习-人脸识别-高级爬虫工程师-数据采集-爬虫实例-大小1-2t按需转存

    Python系列--自动化-机器学习-人脸识别-高级爬虫工程师-数据采集-黑马-爬虫实例-大小1-2t按需转存

    VB网络爬虫源码 - 智联爬虫(爬智联招聘的数据)

    【VB网络爬虫源码 - 智联爬虫(爬智联招聘的数据)】是一个基于Visual Basic(VB)编程语言实现的网络爬虫项目,主要用于抓取和解析智联招聘网站上的招聘信息。这个项目可以帮助我们理解如何利用VB进行网络数据抓取...

    京东爬虫 -- docker mongodb redis scrapy

    京东爬虫 -- docker mongodb redis scrapy等技术实现

Global site tag (gtag.js) - Google Analytics