用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]) 效果是一样的,我的是将字符数组元素在转化为字符串后再次分割)

  1. 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爬取证券数据并存入数据库相关推荐

  1. Python爬取网站数据并存入数据库(简单易懂)

    hello 大家好,最近写代码,需要用到爬虫去爬取数据,废话不多说,进入主题 既然要存入数据库,那必然需要进行数据库连接,通过Python里面的pymysql驱动去链接我们的mysql数据库,然后建立 ...

  2. 用python爬取网页数据并存入数据库中源代码_Python爬取51cto数据并存入MySQL方法详解...

    [] 实验环境 1.安装Python 3.7 2.安装requests, bs4,pymysql 模块 实验步骤1.安装环境及模块 可参考https://www.jb51.net/article/19 ...

  3. python爬取股票数据并存到数据库

    Python 用Tushare接口获取股票数据并存储到Sqlite数据库 使用技术介绍: 关于接口 由于tushare旧版本即将不能用了,所以我们这里使用的是tushare pro 接口. 关于数据库 ...

  4. python爬取疫情数据并存入excel中(包括国内各省份,全球,国内外历史疫情数据)代码可以直接运行

    流程 1.进入获取疫情的url 例如: 腾讯新闻的疫情网站 https://news.qq.com/zt2020/page/feiyan.htm#/ 网易新闻:https://wp.m.163.com ...

  5. python爬取微博热搜写入数据库_python实现爬取微博热搜存入Mysql

    python爬取微博热搜存入Mysql最终的效果 使用的库 目标分析 一:得到数据 二:链接数据库 总代码 最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站lin ...

  6. Python爬取豆瓣+数据可视化

    博客原文和源码下载:Python爬取豆瓣+数据可视化 前言 前段时间应我姐邀请,看了一下Python爬虫.不得不说Python的语法确实简洁优美,可读性强,比较接近自然语言,非常适合编程的初学者上手. ...

  7. Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)

    Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1) 1.  爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: ...

  8. python爬取股市数据

    python爬取股市数据 import requests from bs4 import BeautifulSoup as bs import json import csv#定义两个宏变量.#宏变量 ...

  9. 如何用python爬取网页数据,python爬取网页详细教程

    大家好,本文将围绕python怎么爬取网站所有网页展开说明,如何用python爬取网页数据是一个很多人都想弄明白的事情,想搞清楚python如何爬取网页数据需要先了解以下几个事情. 1.如何用Pyth ...

最新文章

  1. 1126 Eulerian Path
  2. 数字图像处理- 3.6 锐化空间滤波器
  3. 学习笔记:vsphere6 迁移物理机,指定被迁移的IP报错
  4. (017)java后台开发之客户端通过HTTP获取接口Json数据
  5. pku 1486 求出二分匹配图中的必须边
  6. 关于linux内核无法编译成模块的解决方法
  7. 为什么需要切换到在线签署文档和合同
  8. Java实现Spark-Redis,Spark 之 Redis on spark java.io.NotSerializableException
  9. dj鲜生-02-抽象基类的创建
  10. Nginx基本数据结构之ngx_buf_t
  11. Python 基础 —— time(时间,日期)
  12. 安装 卸载 mysql linux,Linux 下MySQL 安装与卸载
  13. 编码原则 之 Once and Only Once
  14. 《计算机操作系统》(慕课版) 第1章 操作系统引论
  15. 论文解读:MOEA/D-TPN
  16. vue 连接高拍仪实现pc 端拍照上传功能
  17. 奇虎360与腾讯之争再现高潮
  18. 淘宝用户行为分析(一):点击—加购—收藏—购买
  19. PowerShell install 一键部署VMware_Workstation
  20. 痛快 SpringBoot终于禁掉了循环依赖

热门文章

  1. Python爬取房价
  2. django连接mysql数据库_Django学习笔记(4)——Django连接数据库
  3. ARP和DNS欺骗以及网站钓鱼分析
  4. 国内人才申领《上海市居住证》审核试行办法
  5. 拉面哥的火爆看新媒体时代的底层逻辑!
  6. 将一个整数分解为质数的乘积的实现方式
  7. react hooks(dva) echarts 实现中国地图省份数据分布显示
  8. 计算机网络--自顶向下方法学习笔记
  9. 安卓开发本地视频播放器——扫描本地视频文件显示在gridview上,然后点击播放。
  10. 作文提升~老师整理的优美比喻句太实用