全网爬取6500多只基金|看看哪家基金最强

.理财是个非常重要的技能,无论是高高在上的成功人士还说大众老百姓都必须要掌握的技能,俗话说"人不理财,财不理你"。理财的方法有很多,我个人比较喜欢买基金,而基金又有很分很多种:股票型,混合型,债券型,QDII还有分级基金,指数基金,货币基金,到底哪家最强的~~

我们码农是靠手艺吃饭的,不就是数据分析吗,简单自己动手写个程序,分析一下.整个的内容我会分几篇来写,今天是思路篇,这算是一个小小的综合项目,前面讲了这么多Python的基础知识,还有数据分析的内容,来实战一下吧

 

全网爬取思路

1.获取所有基金的链接

我们从基金首页,爬出所有基金的编号,基金名字和基金的url,共6500多值

它们长的这样,如下面的截图:

...

共计6527只基金,不管它是什么类型的基金,统统爬下,管他黑猫白猫,能赚钱不亏的基金就是好基金,哈哈

 

2.分析每个基金的数据

单独写一个类,去解析每一个基金网页,我们希望提取以下基金的重要信息

近1个月的涨幅

近3个月的涨幅

近6个月的涨幅

近1年的涨幅

近3年的涨幅

成立以来的涨幅

比如:

 

3.数据的存储

数据获取之后,我们是肯定要存储的,放在内存里面毕竟不是长久之事 。存储可以存在文件里面,存为csv或者json格式 ,这两种格式比较常用.

或者也可以写入数据库了,我们可以用屌丝专用的sqlite3因为它就一个文件,比较简单,或者高大上的关系数据库MySQL(但是它添加表的时候有死板), MangoDb 这个比较灵活,反正写入数据库的话比较好扩展应用,各有所长~~

4.数据的分析

a).对于积极派

希望知道:累计成立涨幅最大的基金

希望知道:累计1年涨幅最大的基金

希望知道:累计6month涨幅最大的基金

希望知道:累计3month涨幅最大的基金

然后取个交集,看看有没有全能王

b).对于稳健派

我们的投资是以稳健为主,稳子当头,涨多涨少不要紧,关键是要涨,而且稳那我们把成立以来,3年来,1年来,6month,3month,1month 看看有没有全都涨的,没有亏过的

当然我们还可以分析一下其他维度的数据,比如成立的时间,几星级好评的基金等等~

代码的方案和注意事项

代码的设计注意事项,因为是全网爬取6500多只基金,肯定要用多线程或者爬虫框架去搞定,我目前能想到的是如下几点方案:

1.方案1

a).先爬出基金首页,获得所有的基金的url信息

b).然后把6500只基金放进队列里面,用多线程取分别处理每一个基金网页的数据

c).然后把所有获得每只基金涨幅,存在内存里面,当所有的基金网页全部都处理完之后,把数据一起写如csv文件

方案1:很明显有一个弱点,就是需要等到所有的基金完成才会写入,假如6500多只基金,我处理到6400多的时候,忽然出现异常或者断网了,怎么办,估计那时想撞墙了。这个时候你所有的数据都没有开始存入csv文件,那你前面CPU呼呼的转,卖力的拼命爬虫,结果时间全部都白费了

2.方案2

a).也是先爬出基金首页,获得所有的基金的url信息

b).然后把6500只基金放进队列里面,用一个类去分别处理每一个基金网页的数据

c).然后这个类是继承Thread,也是直接多线程处理这个队列里面的数据,注意当解析完一个网页之后,立刻把数据写入csv文件。这样做的好处,就是不会因为异常或者断网,导致数据内容没有保存

方案2:还是会有问题,就是线程之间对共享文件的处理问题

3.方案3

看起来好像方案2是不错的,但是每个线程都在存同一个csv文件,多线程直接处理一个文件,肯定会有问题,更何况我们有6500多次反复读写,所以我们需要对文件读写的地方,加锁来处理,这样比较安全

结论:

好全网爬取6500基金的思路篇就讲到这里,这个例子会用到Python的基本知识,爬虫技术,多线程处理,线程间的锁,文件读写,数据分析Pandas的技能等等。若有什么问题,也可以留言讨论,好闲话少说,抓紧时间码代码吧~~

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
626062078,我们一起学Python!

时间: 2024-08-05 18:35:03

全网爬取6500多只基金|看看哪家基金最强的相关文章

Scrapy精华教程(六)——自动爬取网页之II(CrawlSpider)

一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如google等搜索引擎爬虫实现的就是对整个互联网的爬取,所以在本教程中研究使用scrapy自动实现多网页爬取功能. 在教程(五)

【转】 Scrapy研究探索(六)——自动爬取网页之II(CrawlSpider)

转自http://blog.csdn.net/u012150179/article/details/34913315 一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如googl

用Python教你如何爬取脉脉职言

脉脉是一个实名职场社交平台.之前爬了脉脉职言版块,大概爬了4027条评论,本文对爬取过程给出详细说明,对于评论内容仅做可视化分析,之前存了一堆这方面的文章,今天一看全都404了?. 爬虫 仍然使用python编程,对爬虫没兴趣的可以直接跳过看下部分,不影响悦读. 网址https://maimai.cn/gossip_list. 需要先登录才能看到里面的内容.爬取目标: ? 只爬文字部分,图片不考虑. 在浏览器内按F12打开开发者,向下滑,会看到很多gossip开头的json文件(不行的话刷新一下

Python 爬取 4027 条脉脉职言,解读程序员真实的互联网生活!

脉脉是一个实名职场社交平台.之前爬了脉脉职言版块,大概爬了4027条评论,本文对爬取过程给出详细说明,对于评论内容仅做可视化分析. 爬虫 仍然使用Python编程,对爬虫没兴趣的可直接跳过看下部分,不影响阅读.网址https://maimai.cn/gossip_list,需要先登录才能看到里面的内容. 爬取目标: 只爬文字部分,图片不考虑. 在浏览器内按F12打开开发者,向下滑,会看到很多gossip开头的json文件(不行的话刷新一下). 右键open in new tab,里面是一条一条记

python——关于简单爬取博客园班级成员发的博文的题目、发布人、阅读、评论,再存到csv文件中

因为老师要以班里每个人发的博客质量作为最后总成绩的评定的一部分,就要把班上所有同学发的博客都统计起来,可以用来评定的因素有:阅读.评论.推荐等,但因为今天只是做一个简单的爬取,推荐这个元素在班级博客中需要点开每一篇博文才能看到获取,就不爬取了,只爬取阅读和推荐,加上每篇博文的发布人和标题. 我先会放上代码,再逐条解释其含义及作用. 代码如下(其中爬取的网页是以我自己的班级为例): 1 from bs4 import BeautifulSoup 2 import pandas as pd 3 im

分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

[TOC] 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有兴趣的朋友直接看一下代码,就能理解其设计思想,虽然代码目前来说很多地方还是比较紧耦合,但只要花些时间和精力,很多都是可抽取出来并且可配置化的. 因为时间的关系,我只写了京东和苏宁易购两个网站的爬虫,但是完全可以实现不同网站爬虫的随机调度,基于其代码结构,再写国美.天猫等的商品爬取,难度不

通过使用scrapy爬取某学校全网

通过遍历全网url 实现爬取全网内容 忽略".doc"等文件网页暂不处理,只爬取整个页面,不做清洗 spider.py # -*- coding: utf-8 -*- import scrapy from WSYU.items import WsyuItem import datetime from urllib import parse from scrapy.http import Request class WsyuSpider(scrapy.Spider): name = 'w

二毛解读:百度蜘蛛每天都来爬取网站,却只收录首页是怎么回事?

昨夜,一位SEO友人问我一个这样的问题:百度蜘蛛每天都来爬取网站,却只收录首页,文章页及其他页面均未收录,问我是怎么回事? 其实这个问题非常普遍,可以从两个方面分析: 1. 网站内部优化是否完善: 2. 时间问题(文章够原创,站内优化够完善,迟早会收录). 我们主要来谈谈第一个问题:网站内部优化. 其实SEO是什么?SEO不是单纯的迎合百度及其他搜索引擎,他是时刻随用户的体验度来考量网站是否合适.在当今的互联网大环境下,暂时还是随着大多数用户的习惯性体验来对你的网站进行抓取,拍照,索引.网站优化

通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息

源代码:https://github.com/nnngu/LagouSpider 效果预览 思路 1.首先我们打开拉勾网,并搜索"java",显示出来的职位信息就是我们的目标. 2.接下来我们需要确定,怎样将信息提取出来. 查看网页源代码,这时候发现,网页源代码里面找不到职位相关信息,这证明拉勾网关于职位的信息是异步加载的,这也是一种很常用的技术. 异步加载的信息,我们需要借助 chrome 浏览器的开发者工具进行分析,打开开发者工具的方法如下: 点击Nerwork进入网络分析界面,这