Python定时爬取上证指数
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()
最后保存的文件名为今日
- 效果图
- 总结
该爬虫所用到的技术
- from selenium import webdriver: 爬取动态网页信息
- from lxml import etree:解析数据
- import xlrd,xlwt:对 excel 进行读写
- import time:控制时间,合理调度爬虫
最后,还请各位热爱python,热爱爬虫的小伙伴给出指导建议,一起交流,共同学习!!!
Python定时爬取上证指数相关推荐
- python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- [转载] python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)
参考链接: Python vars() python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造 ...
- python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)
python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python ...
- python每天定时爬取微博热搜并保存到本地(表格、数据库)
微博热搜网站:https://s.weibo.com/top/summary/ 就是这个样子: pyquery提取: 保险起见headers里加个UA- from pyquery import PyQ ...
- mysql 去重con_python 爬虫 实现增量去重和定时爬取实例
前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能: 本文作者 ...
- Python爬虫爬取煎蛋网图片代码实例
这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...
- python 学习 爬取证券之星的股票信息
python 学习 爬取证券之星的股票信息 选择原因,数据好获取,便于操作! 第一步,找到股票相关的信息,先去东方财富网,找到股票的代码查询一览表网站 ![在这里插入图片描述](https://img ...
- Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站
Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站 原创文章.码字不易,转载请注明出处和链接,谢谢! 1.环境保障 自己利用scrapy编写的智联招聘网站"大数据 ...
- python requests 爬取数据
python requests 爬取数据 import requests from lxml import etree import time import pymysql import json h ...
最新文章
- STM32H7的FDCAN
- redis 安装测试
- REST、RESTful 与 RESTful API
- java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
- 软件公司管理基本原则
- pandas 批量修改列名_pandas修改DataFrame列名的方法
- 设置线程堆栈大小_哇擦,传说中的堆栈溢出和快速排序
- 【OpenCV 例程200篇】58. 非线性滤波—中值滤波
- 跟小廖一起学习Python正则表达式!
- LVM与软RAID整理笔记
- 旅游网页设计 web前端大作业 全球旅游私人订制 旅游公司网站模板(HTML+CSS+JavaScript)
- 坚守自主创新,璞华HawkEye IETM系统惠及国计民生
- linux openerp,openerp
- 2021年中国冰雪旅游行业市场现状分析,“三足鼎立、两带崛起、全面开花”新格局形成「图」
- svm公式推导及理解
- UVa 1645	Count
- 超级文件分割《合并》机(分割大文件)
- 自学Python day03-if语句
- PyTorch+YOLOv5环境搭建(未完待续)
- 《裸辞的程序猿漂流记十三》——奔跑在逆袭的路上