Python定时爬取上证指数

作为一名初出茅庐的股民,在这中美贸易战的关键时刻,当然得实时关注我大A股的动向啦,所以就写了这只小爬虫~

  • 选择网站
    首先呢,各大网站都有A股指数的数据,但是对网易云的喜爱,让我选择了去爬 网易财经 ,就这样不地道的锁定了目标
    http://quotes.money.163.com/0000001.html
    然鹅,这是一个动态网站,数据都是实时更新,本人技术不够,没法用 requests 库来解决问题
    于是乎,就选择了 selenium 库来模拟浏览器,实时抓取数据
browser = webdriver.Firefox()
browser.get('http://quotes.money.163.com/0000001.html')

在这里选择的是火狐浏览器,只是因为自己用的习惯了而已…

  • 提取信息
    虽然大家都爱用 BeautifulSoup (美丽汤)来提取信息,但我习惯于用 xpath ,毕竟萝卜白菜,各有所爱嘛,合适的才是最好的,实现功能才是王道
    毕竟需要反复爬取数据,实时监控,就定义了一个函数,实现代码复用
def GetPrice(out_time,row):while 1:#获取当前页面源码html=browser.page_source#解析数据html_ele = etree.HTML(html)price = html_ele.xpath('/html/body/div[2]/div[1]/div[3]/table/tbody/tr/td[2]/div/table/tbody/tr[1]/td[1]/span/strong/text()')[0]nowTimes = time.strftime('%H.%M',time.localtime())print(nowTimes,price)#将数据写入xls表格sheet.write(row[0],0,nowTimes)sheet.write(row[0],1,float(price))row[0] = row[0]+1if float(nowTimes)>=out_time:print('时间到,下班喽')breaktime.sleep(60)

这里定义的两个传入数据 (out_time,row) ,第一个是爬虫结束的时间,第二个是 excel 写入时的行
print 语句是为了更好的交互,不然也不知道小爬虫在偷偷摸摸干嘛,还是得看着点
time.sleep(60) 每分钟爬一次,也别给人家服务器太大的压力了
细心的小伙伴可能已经发现了,在爬取数据的同时,也在存储数据了,这里没有选择 txt 文件,而是用 excel
毕竟如果要做图什么的,还是 excel 方便嘛

  • 存储数据
    利用 xlrd,xlwt 库来对 excel 文件进行读写
    #创建储存数据的表格row = [1]workbook = xlwt.Workbook()sheet = workbook.add_sheet("sheet")sheet.write(0,0,'时间')sheet.write(0,1,'上证指数')

row = [1] :因为数字类型是不可变的,而列表类型可变,如果直接用 row = 1 会导致在下午时间段爬取时, excel 数据被覆盖掉

  • 控制爬取过程
    毕竟傲娇的大盘交易时间为9:30~11:30 , 13:00~15:00这短短的4个小时,其他时间爬取的也是无用数据
    Relax(9.30)GetPrice(11.30,row)Relax(13.00)GetPrice(15.00,row)

这里定义了一个 Relax 函数,在非交易时间段,让爬虫休息

def Relax(start_time):while 1:nowTimes = time.strftime('%H.%M',time.localtime())print('当前时间:'+nowTimes,end=' ')if float(nowTimes)>=start_time:print('醒醒,该起床干活了,爬数据去...')breakprint('还早着呢,多睡会儿吧...')time.sleep(60)
  • 全代码
from selenium import webdriver
from lxml import etree
import time
import requests
import xlrd,xlwtdef GetPrice(out_time,row):while 1:#获取当前页面源码html=browser.page_source#解析数据html_ele = etree.HTML(html)price = html_ele.xpath('/html/body/div[2]/div[1]/div[3]/table/tbody/tr/td[2]/div/table/tbody/tr[1]/td[1]/span/strong/text()')[0]nowTimes = time.strftime('%H.%M',time.localtime())print(nowTimes,price)#将数据写入xls表格sheet.write(row[0],0,nowTimes)sheet.write(row[0],1,float(price))row[0] = row[0]+1if float(nowTimes)>=out_time:print('时间到,下班喽')breaktime.sleep(60)def Relax(start_time):while 1:nowTimes = time.strftime('%H.%M',time.localtime())print('当前时间:'+nowTimes,end=' ')if float(nowTimes)>=start_time:print('醒醒,该起床干活了,爬数据去...')breakprint('还早着呢,多睡会儿吧...')time.sleep(60)if __name__=='__main__':#打开模拟浏览器browser = webdriver.Firefox()browser.get('http://quotes.money.163.com/0000001.html')print('获取网页信息')#创建储存数据的表格row = [1]workbook = xlwt.Workbook()sheet = workbook.add_sheet("sheet")sheet.write(0,0,'时间')sheet.write(0,1,'上证指数')#爬取数据Relax(9.30)GetPrice(11.30,row)Relax(13.00)GetPrice(15.00,row)print('保存数据')today = time.strftime('%Y-%m-%d',time.localtime())workbook.save("{}.xls".format(today))browser.close()

最后保存的文件名为今日

  • 效果图


  • 总结
    该爬虫所用到的技术
  1. from selenium import webdriver: 爬取动态网页信息
  2. from lxml import etree:解析数据
  3. import xlrd,xlwt:对 excel 进行读写
  4. import time:控制时间,合理调度爬虫

最后,还请各位热爱python,热爱爬虫的小伙伴给出指导建议,一起交流,共同学习!!!

Python定时爬取上证指数相关推荐

  1. python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  2. [转载] python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)

    参考链接: Python vars() python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造 ...

  3. python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)

    python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python ...

  4. python每天定时爬取微博热搜并保存到本地(表格、数据库)

    微博热搜网站:https://s.weibo.com/top/summary/ 就是这个样子: pyquery提取: 保险起见headers里加个UA- from pyquery import PyQ ...

  5. mysql 去重con_python 爬虫 实现增量去重和定时爬取实例

    前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能: 本文作者 ...

  6. Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  7. python 学习 爬取证券之星的股票信息

    python 学习 爬取证券之星的股票信息 选择原因,数据好获取,便于操作! 第一步,找到股票相关的信息,先去东方财富网,找到股票的代码查询一览表网站 ![在这里插入图片描述](https://img ...

  8. Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站

    Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站 原创文章.码字不易,转载请注明出处和链接,谢谢! 1.环境保障 自己利用scrapy编写的智联招聘网站"大数据 ...

  9. python requests 爬取数据

    python requests 爬取数据 import requests from lxml import etree import time import pymysql import json h ...

最新文章

  1. STM32H7的FDCAN
  2. redis 安装测试
  3. REST、RESTful 与 RESTful API
  4. java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
  5. 软件公司管理基本原则
  6. pandas 批量修改列名_pandas修改DataFrame列名的方法
  7. 设置线程堆栈大小_哇擦,传说中的堆栈溢出和快速排序
  8. 【OpenCV 例程200篇】58. 非线性滤波—中值滤波
  9. 跟小廖一起学习Python正则表达式!
  10. LVM与软RAID整理笔记
  11. 旅游网页设计 web前端大作业 全球旅游私人订制 旅游公司网站模板(HTML+CSS+JavaScript)
  12. 坚守自主创新,璞华HawkEye IETM系统惠及国计民生
  13. linux openerp,openerp
  14. 2021年中国冰雪旅游行业市场现状分析,“三足鼎立、两带崛起、全面开花”新格局形成「图」
  15. svm公式推导及理解
  16. UVa 1645 Count
  17. 超级文件分割《合并》机(分割大文件)
  18. 自学Python day03-if语句
  19. PyTorch+YOLOv5环境搭建(未完待续)
  20. 《裸辞的程序猿漂流记十三》——奔跑在逆袭的路上

热门文章

  1. 命令行下ipconfig出现很多隧道适配器
  2. 根据字段值取字段别名
  3. 三一重机遇到百度智能云,工程机械维保有了新方案
  4. mcp3208C语言程序,C8051F040
  5. linux安装ncurses教程,Ubuntu 安装 Ncurses
  6. android自定义圆形进度条,实现动态画圆效果
  7. 断路器hystrix原理及使用
  8. 云知梦WEB前端开发[最新全套]价值381元
  9. 抗疫先锋 | 航天科工 万物互联 万网融合
  10. windows删除文件时显示“找不到该项目”,彻底删除脚本