我想使用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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python爬取网页停止_如何使用Python抓取雪球网页?相关推荐

  1. python爬取图片失败显示404_python3.7中Web抓取时出现http404错误

    我收到404错误代码(如下所示)当尝试对某个网站进行网页抓取时.在 我试着在不同的论坛上寻找答案,但找不到解决办法 有人有解决方案来修复这个404错误吗?>>> from urlli ...

  2. python修改微信运动步数_微信运动数据抓取(Python)

    "微信运动"能够向朋友分享一个包含有运动数据的网页,网页中就有我们需要的数据.url类似于:http://hw.weixin.qq.com/steprank/step/person ...

  3. python爬大学生就业数据_小猪的Python学习之旅 —— 16.再尝Python数据分析:采集拉勾网数据分析Android就业行情...

    一句话概括本文: 爬取拉钩Android职位相关数据,利用numpy,pandas和matplotlib对招人公司 情况和招聘要求进行数据分析. 引言: 在写完上一篇<浅尝Python数据分析: ...

  4. python爬pdf的曲线_科学网—Python爬PDF - 胡鹏程的博文

    最近用Python爬了两本书,分享下代码,仅作为交流和分享. #下载# import requests #先导入库 import re #正则表达式 import os #创建路径 import ra ...

  5. 爬虫取中间文本_小小爬虫批量抓取微信推文里的图片

    哈喽,大家好,今天给大家分享一个特别特别小的爬虫案例! 爬取微信推文中的图片!!!! 有人说,这有啥用,,,,万一人家推文是放的是以图片的方式放的某个PPT的内容呢,你想把它弄下来,咋整,就是爬取啦. ...

  6. python爬微博数据中心_怎样用python爬新浪微博大V所有数据?

    最近为了做事件分析写了一些微博的爬虫,两个大V总共爬了超70W的微博数据. 官方提供的api有爬取数量上限2000,想爬取的数据大了就不够用了... 果断撸起袖子自己动手!先简单说一下我的思路: 一. ...

  7. python百度贴吧怎么爬取最早的帖子_【Python爬虫教学】百度篇·手把手教你抓取百度贴吧任意贴吧指定范围页数内的源代码...

    开门见山. 懒癌一犯,能拖一天是一天. 好了,亲爱的小伙伴们,我又回来了!今天带来的是抓取输入的任意贴吧,抓取指定范围页数内的源代码. 工具: 依旧是 PyCharm 和 Google 浏览器,pyt ...

  8. java jsoup爬动态网页_使用Jsoup+HtmlUnit抓取动态网页数据

    最后更新日期为2018.1.3 只为自己留个记录 待添加功能: 1.获取历史全部消息 2.爬取大于10条数据 3.自定义抓取公众号信息 package cc.buckler.test; import ...

  9. python数据抓取技术与实战训练_师傅带徒弟学Python:项目实战1:网络爬虫与抓取股票数据...

    本视频基于**Python 3.X版本 本视频课程是第四篇第一个实战项目,内容包括网络爬虫技术.使用urllib爬取数据.使用Selenium爬取数据.使用正则表达式.使用BeautifulSoup库 ...

最新文章

  1. 记前端项目首屏加载优化(网络篇)
  2. 奥数之“牛吃草问题”C++实现
  3. Java用map实现沁园春_QQ飞车:小钰挑战沁园春影子记录,成为了这张地图的赛道之王!...
  4. 通过互信息思想来缓解类别不平衡问题
  5. nodejs库express是如何接收inbound json请求的
  6. Struts2与Servlet之间的关系
  7. [转]删除表中重复记录
  8. java:Eclipse:Juno:设置workspace路径
  9. python3前面加b_Python3 字符串前面加u,r,b的含义
  10. python拆分excel的sheet为单文件_pandas处理excel一个sheet拆分为多个sheet
  11. 25.conda 下载安装与运用
  12. 三星手机即将获得完整的Linux发行版支持
  13. 蠕虫mysql_mysql蠕虫复制基础知识点
  14. android8修改默认壁纸,给surfaceview设置默认背景
  15. 悟透delphi 第十章 操作界面与操作逻辑
  16. 软件测试佣金问题等价类,测试用例设计白皮书--等价类划分方法
  17. 科技论文中字母正斜体及大小写的规范写法
  18. OR(odd ratios)
  19. 多协议标记交换MPLS
  20. amd linux raid,RAID的详解

热门文章

  1. 常见前端安全漏洞及防范方法
  2. 燃尽图 (Burn up and Burn down Chart)—介绍
  3. 阿里云日本区正式开服 飞天系统全球化部署格局初定
  4. [声纹识别]基于MFCC的声纹识别算法
  5. 声纹识别损失函数总结
  6. Matlab中的im2col函数
  7. 三八节活动答题运营复盘
  8. python+大数据之数据可视化完整版
  9. springboot+Rabit实战三:(springboot+rabbit 项目搭建)
  10. 古墓丽影暗影显卡测试软件,决战古墓丽影暗影 畅玩需要什么显卡?