Coder Social home page Coder Social logo

fund-morning-star-crawler's Introduction

晨星基金数据爬取

前言

晨星网,国际权威评级机构 Morningstar 的**官方网站,所以它的基金评级是很有参考性的。

数据爬取

1.晨星列表数据

爬取晨星网筛选列表,包括基金代码,基金专属代码,基金分类,三年评级,五年评级这些维度等,有了这些基本数据,为了爬取基金详情页,基金筛选等铺好数据基础。

列表爬取数据截图:

2. 晨星基金详情页数据--不变数据

爬取基金详情页的数据, 根据晨星列表数据 数据,遍历爬取单支基金的详情页数据(包括名称,代码,分类,成立时间,基金公司)等维度,后续还有根据这些数据爬取基金的持仓信息,为后面筛选股票做好进一步铺垫

3. 晨星基金详情页数据--季度变动数据

爬取基金详情页的数据, 根据第二部分晨星基础数据 数据,过滤掉货币,纯债基金,爬取单支基金的详情页数据(包括总资产,投资风格,各种风险信息,评级,股票,债券持仓比例等)等维度

4. 晨星基金详情页数据--十大持仓股票信息

爬取基金详情页的数据, 根据第二部分晨星基础数据 数据,过滤掉没有持有股票的基金,爬取单支基金的十大持仓股票信息(包括每只股票的代码,名称,占比)等维度

5. 晨星基金经理

爬取基金详情页的数据,据此爬取基金经理数据

技术点

  • selenium 模拟登录, 切换分页
  • BeautifulSoup 解析 HTML
  • pandas 处理数据
  • 工具 — 数据库用了pymysql , id 使用雪花 id,验证码识别使用了pytesseract
  • 多线程爬取

爬虫流程

  1. selenium 模拟登录:
    • 可采用验证码识别方式
    • 设置已经登录好的账号 cookies
  2. 利用BeautifulSoup 解析 html,提取当前页的基金列表信息,存入到 mysql 中,或者追加到 csv 中
  3. selenium 模拟切换分页,重复第二,第三步
  4. 所有的页数据爬取完,退出浏览器

其他

涉及到一些细节有:

  1. 验证码识别错误的话,怎么处理
  2. 切换分页如果是最后一页时,怎么处理下一页点击
  3. 晨星评级是用图片表示,如果转化成数字表示
  4. 如何保证循环当前页与浏览器当前页一致
  5. 多线程爬取时,线程锁

以上问题,我都做了相对应的处理,如果有问题的话,欢迎提 issue,私聊,star。

fund-morning-star-crawler's People

Contributors

jackluson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.