简单的Python爬虫应用

  • 目标:爬取东方财富网的股票信息
    • 1.先找到要爬取的网页
    • 2.第二步开始爬取信息
      • 2.1 通过requests获取网页信息
      • 2.2再通过BeautifulSoup解析;
      • 2.3分析股票详情页面
    • 3.成果
    • 3.数据分析

目标:爬取东方财富网的股票信息

提醒:在此之前你需要一些Python基础知识;
我们开始吧!
首先是在这个爬虫中会用到的一些库
1.request库和selenium库(获取网页信息)
2.BeautifulSoup库(对网页信息进行处理)
3.matplotlib库(对爬取信息进行分析)
4.time库

1.先找到要爬取的网页


这里要爬取股票信息有两个方法:
1.直接通过http://so.eastmoney.com/web/s?keyword=股票名称
这个URL访问
2.通过http://quote.eastmoney.com/stocklist.html获取所有股票名称和URL
如图:
我这里是使用的第二种方法,因为一开始我想先获取所有股票的URL连接然后
全部爬取下来做分析。

2.第二步开始爬取信息

def getHtml(url):requests.get(url)soup = BeautifulSoup(r.text,"html.parser")return soup

2.1 通过requests获取网页信息

def findlist():url="http://quote.eastmoney.com/stocklist.html"soup= getHtml(url)search= soup.find("div",{"id":"quotesearch"})ullist=search.find_all("ul")for ul in ullist:lilist= ul.find_all("li")for li in lilist:data = []a= li.find("a",{"target":"_blank"})data.append(a.string)data.append(a.attrs["href"])stocklist.append(data)

2.2再通过BeautifulSoup解析;

本来我是想要通过获取网页的请求,来看看到底数据是怎么来的,有可能是JSON什么的,也许就不用怎么麻烦;后来…

数据都在HTML里面,那就难受了。只能老老实实的解析HTML了。

2.3分析股票详情页面

进入股票详情页面;看到啦,要爬取的数据就在这里

通过前面的方法继续获取网页信息,然后就遇到了一个问题

这个HTML里面竟然没有数据
后来查了一下发现这个网页的数据是通过JS动态加载的并没有在HTML里面
但是我们可以通过获取这个网页请求数据的链接来获取我们想要的数据
然后我就找啊找终于找到了

这就是我们找的数据
看一下它的URL

可以看见这个请求中有很多参数,先分析一下。cmd是股票代码,最后一个是时间戳加了三个数字
我试了一下好像获取不到数据,一直获取的都是第一次数据
肯定是参数没有对

不管了,然后我就换了一个方法用selenium模拟浏览器可以获取加载完成的HTML

from selenium import webdriver
import timedriver = webdriver.Chrome()def getHtml(url):driver.get(url)time.sleep(3)soup = BeautifulSoup(driver.page_source,"html.parser")return soup

注意:在使用selenium的时候最好加个延迟,不然很可能获取不到数据
然后其他步骤和前面一样最后得到数据

def finddata(soup):singledata = {}datadiv=soup.find("div",{"class":"qphox layout mb7 clearfix"})if(datadiv==None):datadiv=soup.find("div",{"class":"qphox layout mb7"})if(datadiv!=None):singledata= finddata2(datadiv,singledata)return singledatastrong=datadiv.find("div",{"id":"arrowud"}).strongsingledata["color"]=strong.attrs["class"][-1]singledata["number"]=strong.stringullist=datadiv.find_all("ul")for ul in ullist:lilist=ul.find_all("li")for li in lilist:singledata[li.span.string]=li.span.nextSibling.stringreturn singledatadef finddata2(datadiv,singledata):strong=datadiv.find("strong",{"id":"price9"})singledata["color"] = strong.attrs["class"][-1]singledata["number"] = strong.stringtrlist=datadiv.find_all("tr")i=1for tr in trlist:tdlist=tr.find_all("td")for td in tdlist:if(td.attrs=={}):singledata[td.string]=tr.find("td",{"id":"gt"+str(i)}).stringi = i + 1return singledata

3.成果

然后 还做了一个用户交互

1.每次查询都会将股票存储在本地
2.然后每次都可以查询你关注的股票
3.数据分析
4.显示当前股票排名
5.程序会一直运行,直到股票变化超过0.01

3.数据分析

通过matplotlib库可以对获取的数据进行可视化分析

import matplotlib.pyplot as plt
numlist=[1,2,3,4,5]
plt.plot(numlist, 'k')
plt.show()

不过由于我用的是selenium所以爬取速度有点慢,数据量不够大,爬了一个小时才勉强能用

源码在此https://github.com/YOURENTUTU/python/blob/master/

Python爬虫爬取东方财富网的股票信息相关推荐

  1. python爬虫爬取东方财富网股票走势+一些信息

    一.目标 我们的目标是爬取东方财富网(https://www.eastmoney.com/)的股票信息 我的目标是爬取100张股票信息图片 经过实际测试我的爬取范围为000001-000110,000 ...

  2. [Python爬虫]爬取东方财富网公司公告需要注意的几个问题

    在上一篇文章中,以爬取东方财富网公司公告为例,介绍了如何爬取利用ajax加载的网页,以及如何模拟翻页.但是,在实际应用的过程中,发现了一些问题.接下来就来一一分析解决. 问题一.公告数量过多,后面的公 ...

  3. 用python爬虫爬取东方财富网信息网页信息_爬取东方财富网数据的网页分析

    自学Python已有3个月之多,浏览无数大神的佳作,收获颇丰.当初自学python就是为了学习爬虫,爬取网站上好看妹子的图片--[流口水][流口水] 言归正传,近期学习量化交易知识,发现东方财富网(e ...

  4. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  5. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  6. python爬虫爬取知网

    python爬虫爬取知网 话不多说,直接上代码! import requests import re import time import xlrd from xlrd import open_wor ...

  7. [python爬虫]爬取天气网全国所有县市的天气数据

    [python爬虫]爬取天气网全国所有县市的天气数据 访问URL 解析数据 保存数据 所要用到的库 import requests from lxml import etree import xlwt ...

  8. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转)

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  9. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. Lintcode189 First Missing Positive solution 题解
  2. 狼羊菜过河问题深入学习分析——Java语言描述版
  3. 【杂谈】什么是我心目中深度学习算法工程师的标准
  4. cms-幻灯片的实现
  5. android 处理http状态码,OkHttp(Retrofit)对于http状态码202的处理
  6. java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...
  7. python填空题_Python题库-填空题
  8. 实现AutoCAD和ArcGIS进行并发和互编辑操作
  9. matlab fft变换后的相位精度问题_MATLAB曲线拟合及Fourier分析
  10. HigherHRNet代码复现问题集(assert isinstance(orig, torch.nn.Module))
  11. Java抓包分析四(基于jnetpcap进行抓包)——分析Http请求数据包
  12. 怎么实现EDIUS中添加的图片素材一样大
  13. Python爬虫自学与实战,爬一下自己的博客文章
  14. 【css滤镜】高级属性filter
  15. java: 找不到符号 符号: 方法 getResourceAsStream(java.lang.String) 位置: 类 com.alibaba.druid.support.loggi
  16. ICP许可证怎么申请?
  17. 线下门店管理运营 线下门店数据分析
  18. 如何将平板设置为笔记本的扩展屏
  19. html语言中的强制性换行是,html中的div、td 、p 等容器内强制换行和不换行的实现方法...
  20. 跨境电商卖家发货形式多样,亚马逊卖家如何选择?

热门文章

  1. Triggers can not be created on system tables
  2. 苹果正式发布Mac OS X Lion系统
  3. qt5使用内存检测工具vld查看内存泄漏
  4. JavaSE——柏羲
  5. VScode+Unity3D的配置
  6. 谷歌X最新开源任务驱动的类级别机器人抓取CaTGrasp!
  7. 美通企业日报 | 科技和能源行业最受中国公众信任;英特尔携手大华发展智能视觉技术...
  8. vmware设置共享文件夹
  9. 物理:窄脉冲 | 九七的物理
  10. 菜鸟后端程序员花了两天半模仿写出了赶集网主页,速来围观!