雪球python爬虫炒股_如何使用 Python 抓取雪球网页?
我想使用beautifulsoup或者其他的python包 抓取 雪球网页上面的一些组合,因为雪球网的组合持仓变动的时候,雪球网不会给提示,比如说,我想抓取这个http://xueqiu.com/P/ZH010389。基本的想法是用程序追踪到他的持仓,然后有变化的时候,程序给我一个提示。
##简而言之,要做的事情是:打开这个界面,然后打开这个界面的调仓历史记录,然后记录下他的当前仓位,对比以前的仓位。##
问题是:由于我对HTML不太了解,我打开Chrome的开发者工具的时候,不知道应该怎么样让我的程序打开他的调仓历史记录。。。
这个问题可能比较小白。。。麻烦啦!!!
回复内容:
//好多人说现在关注就有提醒的……呃,题主提问的时候显然没那个功能。我写这个只是自己在学习爬虫过程中的练习。我不炒股也不上雪球……
//好多赞。容我安利一篇自己的回答如何入门 Python 爬虫? - 段晓晨的回答
边做边调边写~
#start coding
首先要知道自己在爬什么~楼主说找到HTML的代码云云,思路其实是错误的。因为我们想要的内容不在原始的html里面。但是肯定在浏览器和服务器之间的通信里,我们只要找到这部分数据就好。
#我用的是Firefox的FireBug
选择网络(Chrome中应该是Network),点击调仓历史记录,如图
可以看到浏览器和服务器之间进行了一次通信。我们截获了一个网址。打开看看。
看上去像是一堆乱,但是细心的话就会发现……
也就是说我们要的数据都在这里了,所以只要先获取这个页面的内容然后在提取数据就好了~
import urllib.request
url = 'http://xueqiu.com/cubes/rebalancing/history.json?cube_symbol=ZH010389&count=20&p
age=1'
req = urllib.request.Request(url,headers=headers)
html = urllib.request.urlopen(req).read().decode('utf-8')
print(html)
现在关注一个组合,就会有持仓变动的提示了。不过我觉得这事情挺有意思的。比如可以把很多持仓的数据都抓下来,做一些综合的分析,看看现在网站上被持有最多的股票是哪一支,某一天被调入最多的又是哪一支之类。
于是我决定来抓抓看,顺便借此说说我通常用程序做自动抓取的过程。
Step.1 分析页面
要抓一个网页,首先自然是要“研究”这个网页。通常我会用两种方式:
一个是 Chrome 的 Developer Tools。通过它里面的 Network 功能可以看到页面发出的所有网络请求,而大多数数据请求都会在 XHR 标签下。点击某一个请求,可以看到其具体信息,以及服务器的返回结果。很多网站在对于某些数据会有专门的请求接口,返回一组 json 或者 XML 格式的数据,供前台处理后显示。
另一个就是直接查看网页源代码。通常浏览器的右键菜单里都有这个功能。从页面的 HTML 源码里直接寻找你要的数据,分析它格式,为抓取做准备。
对于雪球上的一个组合页面 ,粗略地看了一下它发出的请求,并没有如预想那样直接找到某个数据接口。看源代码,发现有这样一段:
SNB.cubeInfo = {"id":10289,"name":"誓把老刀挑下位","symbol":"ZH010389" ...此处略过三千字... "created_date":"2014.11.25"}
SNB.cubePieData = [{"name":"汽车","weight":100,"color":"#537299"}];
雪球网已经改了很多规则,以前的很多代码估计都不能用了
我刚写了一个雪球网的模拟登录,fuck-login/012 xueqiu.com at master · xchaoinfo/fuck-login · GitHub
在此基础上修改,可以达到题主的目的,而且可以做到更加简单。
处理 cookies ,不需要每次都登录一次的方法,可以参考 fuck-login/001 zhihu at master · xchaoinfo/fuck-login · GitHub 的处理方法。
需要两个模块配合:爬虫模块:单纯负责抓取和存储数据
数据处理模块:处理爬虫存储的数据。如发现某个人某个持仓数据发生了变化,向你发出通知
该爬虫的简单的流程:定时访问目标页面
抓取当前目标页面的数据,存入数据库
数据处理模块简单的流程:定时访问数据库
数据库中的数据满足某个条件时执行自己设定的动作
抓取雪球的数据?巧了,刚看到一篇文章专门讲这个的,推荐给大家:互联网金融爬虫怎么写已关注的组合会收到调仓通知。
#技术宅都好暴力,看不到调仓就直接抓......#
我在 @段晓晨的基础上做了一点点优化,目前是这样的。
测试前请把帐号密码填上
更新内容:
增加了自动获取cookie
修改了一下显示组合改变的代码
import urllib.requestimport jsonimport http.cookiejar#设置cookieCookieJar = http.cookiejar.CookieJar()CookieProcessor = urllib.request.HTTPCookieProcessor(CookieJar)opener = urllib.request.build_opener(CookieProcessor)urllib.request.install_opener(opener)#登陆获得cookieparams = urllib.parse.urlencode({'username':'*****','password':'*****'}).encode(encoding='UTF8')headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0'}request = urllib.request.Request('http://xueqiu.com/user/login',headers=headers)httpf = opener.open(request, params)#获得组合url = 'http://xueqiu.com/cubes/rebalancing/history.json?cube_symbol=ZH340739&count=20&page=1'req = urllib.request.Request(url,headers=headers)html = urllib.request.urlopen(req).read().decode('utf-8')data = json.loads(html)stockdata = data['list'][0]['rebalancing_histories']for i in range(len(stockdata)):print('股票名称',end=':')print(stockdata[i]['stock_name'],end=' 持仓变化')print(stockdata[i]['prev_weight'],end='-->')print(stockdata[i]['target_weight'])
首先需要三个库:urllib2,cookielib,json
然后用firefox 打开誓把老刀挑下位 并登陆,然后找到 cookie文件,
最后调仓记录的地址是:http://xueqiu.com/cubes/rebalancing/history.json?cube_symbol=ZH010389&count=20&page=1 用urllib2 和coolielib 伪造header,和cookie 访问 就可以得到 json文件格式的调仓记录,然后用json 处理 就可以了
题主不知道关注后有推送提示么 ......
用shell
雪球python爬虫炒股_如何使用 Python 抓取雪球网页?相关推荐
- python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程
爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...
- Python爬虫 | 斗图网表情包抓取
Python爬虫 | 斗图网表情包抓取 1.数据来源分析 2.制作div_list 3.发起请求 4.保存图片 5.批量获取 6.完整代码 声明 1.数据来源分析 打开斗图吧的主页,发现网址非常有 ...
- python 爬虫框架_小白学 Python 爬虫(28):自动化测试框架 Selenium (下)
人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...
- Python爬虫实战(4):抓取淘宝MM照片
Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...
- Python爬虫实践(入门篇)——抓取《天使降临到我身边》图片
今天就学了一下Python爬虫,于是想实践一下.刚好一周前在B站补完番<天使降临到我身边>--里面的小学生特可爱.情节也不错,心里就比较喜欢这部漫画,所以就想扒一些图片当壁纸.刚好,Pyt ...
- 常见python爬虫模板_常见的Python爬虫框架有几个?
常见的Python爬虫框架有几个?实现爬虫技术的编程环境有很多种,Java.Python.C++等都可以用来写爬虫.但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的 ...
- python 爬虫 教程_一个入门级python爬虫教程详解
前言 本文目的:根据本人的习惯与理解,用最简洁的表述,介绍爬虫的定义.组成部分.爬取流程,并讲解示例代码. 基础 爬虫的定义:定向抓取互联网内容(大部分为网页).并进行自动化数据处理的程序.主要用于对 ...
- python爬虫 - GET和POST分别对爬取的网页状态的影响以及常见网页状态码(200、401、402、404等等)
主要内容:GET和POST分别对爬取的网页状态的影响以及常见的网页状态码 目录 区分网页请求GET or POST get方法的特点 post方法的特点 网页返回状态码 200 非200 区 ...
- python爬虫之js链接跳转抓取_Python爬虫获取页面所有URL链接过程详解
如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup ...
最新文章
- 编写简单的发布者和订阅者(C++)---ROS学习第9篇
- css 加随机数 引用_在CSS中生成随机数
- html5实现圆圈里带一个三角形,HTML5 Canvas圆圈里面的三角形变换动画
- Android开发之Java的IO流读写的十种方法
- c#发送讯息_企业讯息
- c语言中浮点数如何声明,C语言中浮点数定义和文本处理的配合
- 服务器之间远程拷贝scp
- 6N137S周边电阻选择和传输速率(在开关特性中有描述,上升时间下降时间等参数)
- 电脑XP系统开机速度变慢12种解决办法
- 黑苹果10.14.5安装WebDriver驱动nvidia独立显卡
- 常用分辨率、帧率、码率
- 计算机加硬盘后速度变慢,硬盘速度变慢怎么办 硬盘速度慢解决方法步骤介绍【详解】...
- 如何制作拼图?教你三步快速拼接图片
- 浅谈Unity的渲染优化(1): 性能分析和瓶颈判断(上篇)
- 【PS基础】-照片拼接基础
- cmd中如何运行python文件_在cmd中运行.py文件: python的操作步骤
- Android接入高德地图SDK 一引入高德sdk
- [JAVA]递归实现客户端与服务端之间的文件与文件夹传输
- 是什么刺激了房企开始布局人工智能?
- (翻译)常见问题解答(Frequently Asked Questions(FAQ))