python爬取证券数据并存入数据库
用python爬虫爬取数据并存到数据库
1----------------------------------------------------------------------编写爬虫,下载数据
2----------------------------------------------------------------------处理数据
3----------------------------------------------------------------------python连接数据库并存储数据
1.编写爬虫,下载数据
首先需要的导入requests库(import requests)如果没有的话需要安装
在命令行界面输入pip install requests就是自动安装requests库了。
若安装成功,则显示如下:
安装好后接下来就可以编写爬虫了 爬虫的代码很简单
import requests
url=‘http://hq.sinajs.cn/list=sz000001,sh000001’
a=requests.get(url)
print(a.text)
这三行就可以把需要的数据下载下来了,效果如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190915183910427.png
2.处理数据
我们利用爬虫下载下来的其实是一个很长的字符串那,可以执行以下代码观察以下
str=a.text #将字符串以“;”分割转化为字符数组
a_array=str.split(";")
print(a_array)
然而 图片上显示的数组长度只有2,我们需要做的是将这个数组里的a_array[1]继续分割,将每个数据作为一个元素存到数组里,代码如下
for ss in a_array[0:len(a_array)-1]:
m = ss.index(""")
n = ss.rindex(""")
a_arr = ss[m + 1:n].split(",")
print(a_arr)
效果如下:
这样我们便完成了数据的处理(数据处理的方法有很多种,而我个人用的代码则如以下
需要导入re库 (正则表达式库)
#了解正则表达式https://blog.csdn.net/qq_22186119/article/details/73252420
Import re #加在文件头
arr_a=pattern.findall(a_array[0])
#print(arr_a[0])
a1=’,’.join(arr_a)
#print(a1)
a_arr=a1.split(",")
#print(a_arr[3]) 效果是一样的,我的是将字符数组元素在转化为字符串后再次分割)
- python连接数据库并存储数据
mysql-connector链接数据库http://www.runoob.com/python3/python-mysql-connector.html
pymysql链接数据库 http://www.runoob.com/python3/python3-mysql.html
我用的是pymysql 接下来就用pymysql链接数据库了
import pymysql
打开数据库连接
db = pymysql.connect(“localhost”,“root”,“yutou”,“yu” )
使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
使用 execute() 方法执行 SQL 查询
cursor.execute(“SELECT VERSION()”)
使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
关闭数据库连接
db.close()注意:在链接数据库前,请先确认一下事项:
1.已经在数据库里面建立了数据库,并在数据库中已经建立了表
2.“root”为数据库名,“yutou”为数据库密码,“yu”为数据库名
3.数据库名和表名根据个人不同须用自行输入
代码运行效果如下:
其他数据库操作语句请看上面链接来学习
要将下载的数据存取到数据库中,需要在数据库中建立表,表头含有32项,对应数据的每一项,具体表头设置请看行情接口
具体存储数据的代码如下:
#链接数据库
print(‘连接到mysql服务器…’)
# 打开数据库连接
db = pymysql.connect(“localhost”,“root”,"",“yu” )
print(‘连接上了!’)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
#cursor.execute(“DROP TABLE IF EXISTS gupiao”)
sql_insert=“INSERT INTO gupiao VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)”
val=[a_arr[0],a_arr[1],a_arr[2],a_arr[3],a_arr[4],a_arr[5],a_arr[6],a_arr[7],a_arr[8],a_arr[9],a_arr[10],a_arr[11],a_arr[12],a_arr[13],a_arr[14],a_arr[15],a_arr[16],a_arr[17],a_arr[18],a_arr[19],a_arr[20],a_arr[21],a_arr[22],a_arr[23],a_arr[24],a_arr[25],a_arr[26],a_arr[27],a_arr[28],a_arr[29],a_arr[30],a_arr[31]]
#cursor.execute(sql)
cursor.execute(sql_insert,val)
db.commit()
# 关闭数据库连接
db.close()
t=time.process_time()
print(t)
#sql_insert="INSERT INTO gupiao VALUES 为数据库存值语句,gupiao即表名
t=time.process_time() 为打印运行时间函数,须引入time库import time
基本操作就是这些,接下来附上整体代码和运行结果
import requests
import pymysql
import re
import time
url=“http://hq.sinajs.cn/list=sz000001”
a=requests.get(url)
#print(a.text)
str=a.text #将字符窜变成字符数组
a_array=str.split(";")
#print(a_array)
#print(a_array[0])
#print(a_array[1])
for ss in a_array[0:len(a_array)-1]:
m = ss.index(""")
n = ss.rindex(""")
a_arr = ss[m + 1:n].split(",")
print(a_arr)
#链接数据库
print(‘连接到mysql服务器…’)
打开数据库连接
db = pymysql.connect(“localhost”,“root”,"",“yu” )
print(‘连接上了!’)
使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
使用 execute() 方法执行 SQL,如果表存在则删除
#cursor.execute(“DROP TABLE IF EXISTS gupiao”)
sql_insert=“INSERT INTO gupiao VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)”
val=[a_arr[0],a_arr[1],a_arr[2],a_arr[3],a_arr[4],a_arr[5],a_arr[6],a_arr[7],a_arr[8],a_arr[9],a_arr[10],a_arr[11],a_arr[12],a_arr[13],a_arr[14],a_arr[15],a_arr[16],a_arr[17],a_arr[18],a_arr[19],a_arr[20],a_arr[21],a_arr[22],a_arr[23],a_arr[24],a_arr[25],a_arr[26],a_arr[27],a_arr[28],a_arr[29],a_arr[30],a_arr[31]]
#cursor.execute(sql)
cursor.execute(sql_insert,val)
db.commit()
关闭数据库连接
db.close()
t=time.process_time()
print(t)
只用了不到0.5秒便完成了数据下载和和存储,数据库里也有了记录,但这是第一步,接下来我们会引入线程和进程,来完成多个网址一起下载数据,以及优化执行流程,缩短执行时间,今天教程就先到这里,敬请期待续集
python爬取证券数据并存入数据库相关推荐
- Python爬取网站数据并存入数据库(简单易懂)
hello 大家好,最近写代码,需要用到爬虫去爬取数据,废话不多说,进入主题 既然要存入数据库,那必然需要进行数据库连接,通过Python里面的pymysql驱动去链接我们的mysql数据库,然后建立 ...
- 用python爬取网页数据并存入数据库中源代码_Python爬取51cto数据并存入MySQL方法详解...
[] 实验环境 1.安装Python 3.7 2.安装requests, bs4,pymysql 模块 实验步骤1.安装环境及模块 可参考https://www.jb51.net/article/19 ...
- python爬取股票数据并存到数据库
Python 用Tushare接口获取股票数据并存储到Sqlite数据库 使用技术介绍: 关于接口 由于tushare旧版本即将不能用了,所以我们这里使用的是tushare pro 接口. 关于数据库 ...
- python爬取疫情数据并存入excel中(包括国内各省份,全球,国内外历史疫情数据)代码可以直接运行
流程 1.进入获取疫情的url 例如: 腾讯新闻的疫情网站 https://news.qq.com/zt2020/page/feiyan.htm#/ 网易新闻:https://wp.m.163.com ...
- python爬取微博热搜写入数据库_python实现爬取微博热搜存入Mysql
python爬取微博热搜存入Mysql最终的效果 使用的库 目标分析 一:得到数据 二:链接数据库 总代码 最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站lin ...
- Python爬取豆瓣+数据可视化
博客原文和源码下载:Python爬取豆瓣+数据可视化 前言 前段时间应我姐邀请,看了一下Python爬虫.不得不说Python的语法确实简洁优美,可读性强,比较接近自然语言,非常适合编程的初学者上手. ...
- Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)
Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1) 1. 爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: ...
- python爬取股市数据
python爬取股市数据 import requests from bs4 import BeautifulSoup as bs import json import csv#定义两个宏变量.#宏变量 ...
- 如何用python爬取网页数据,python爬取网页详细教程
大家好,本文将围绕python怎么爬取网站所有网页展开说明,如何用python爬取网页数据是一个很多人都想弄明白的事情,想搞清楚python如何爬取网页数据需要先了解以下几个事情. 1.如何用Pyth ...
最新文章
- 1126 Eulerian Path
- 数字图像处理- 3.6 锐化空间滤波器
- 学习笔记:vsphere6 迁移物理机,指定被迁移的IP报错
- (017)java后台开发之客户端通过HTTP获取接口Json数据
- pku 1486 求出二分匹配图中的必须边
- 关于linux内核无法编译成模块的解决方法
- 为什么需要切换到在线签署文档和合同
- Java实现Spark-Redis,Spark 之 Redis on spark java.io.NotSerializableException
- dj鲜生-02-抽象基类的创建
- Nginx基本数据结构之ngx_buf_t
- Python 基础 —— time(时间,日期)
- 安装 卸载 mysql linux,Linux 下MySQL 安装与卸载
- 编码原则 之 Once and Only Once
- 《计算机操作系统》(慕课版) 第1章 操作系统引论
- 论文解读:MOEA/D-TPN
- vue 连接高拍仪实现pc 端拍照上传功能
- 奇虎360与腾讯之争再现高潮
- 淘宝用户行为分析(一):点击—加购—收藏—购买
- PowerShell install 一键部署VMware_Workstation
- 痛快 SpringBoot终于禁掉了循环依赖