关于爬虫爬取数据并存入MySQL数据库(以东方财富网上的股票数据为例,网页:深南电A(000037)资金流向 _ 数据中心 _ 东方财富网)

第一步,创建数据库中的数据表

import requests
import pandas as pd
import re
import pymysqldb = pymysql.connect(host='localhost', user='root', password='ls101945', db='东方财富', port=3306, charset='utf8')
cursor = db.cursor()#建立游标
cursor.execute("DROP TABLE IF EXISTS 东方财富")#如果有表叫东方财富,删除表
sql = """create table 东方财富(            日期 char(20) not null,主力净流入净额 char(20),小单净流入净额 char(20),中单净流入净额 char(20),大单净流入净额 char(20),超大单净流入净额 char(20) ,主力净流入净占比 char(20),小单净流入净占比 char(20),中单净流入净占比 char(20),大单净流入净占比 char(20),超大单净流入净占比 char(20),收盘价 char(20),涨跌幅 char(20))"""
try:#如果出现异常对异常处理# 执行SQL语句cursor.execute(sql)print("创建数据库成功")
except Exception as e:print("创建数据库失败:case%s" % e)

导入pymysql,连接到东方财富数据库,开启游标功能,创建游标对象(注意:当开启游标功能执行这个sql语句后,系统并不会将结果直接打印到频幕上,而是将上述得到的结果,找个地方存储起来,提供一个游标接口给我们,当你需要获取数据的时候,就可以从中拿数据),使用sql语句建立数据表,设计字段名,类型,能不能为空值。使用execute()方法,执行sql语句。在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确),可以增加try来捕获异常,try:尝试执行的代码,except:出现错误的处理。

第二步,爬取数据

在目标网页中点击左键-检查-网络,刷新网页,找到数据存储的位置

url = 'https://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get?cb=jQuery112301445006905131534_1634624378230&lmt'\'=0&klt=101&fields1=f1%2Cf2%2Cf3%2Cf7&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58%2Cf59%2Cf60%2Cf61%2Cf62%'\'2Cf63%2Cf64%2Cf65&ut=b2884a393a59ad64002292a3e90d46a5&secid=0.000037&_=1634624378231'
headers = {'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.50'}
#发送url链接的请求,并返回响应数据
response = requests.get(url=url, headers=headers)
page_text = response.text
#使用正则表达式获取数据
pat = '"klines":\[(.*?)\]'#(.*?)就是我们要取出的部分
data = re.compile(pat, re.S).findall(page_text)#compile函数编译正则匹配表达式,re.S代表可以换行匹配,使用findall函数选定数据集,也就是爬取的所有源代码

url和headers可以在其中找到,构造请求头,发送url链接的请求,并返回响应数据,使用正则表达式获取数据。

第三步,写入数据库

datas = data[0].split('","')#分割字符串for i in range(len(datas)):stock = list(datas[i].replace('"', "").split(","))#把“替换为空格,以,为分隔符分割
#用sql语言写入数据表sql1 = """insert into 东方财富(日期,主力净流入净额,小单净流入净额,中单净流入净额,大单净流入净额,超大单净流入净额,主力净流入净占比,小单净流入净占比,中单净流入净占比,大单净流入净占比,超大单净流入净占比 ,收盘价 ,涨跌幅 )value('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')""" % (stock[0], stock[1], stock[2], stock[3], stock[4], stock[5], stock[6], stock[7], stock[8], stock[9], stock[10],stock[11], stock[12])#将值插入到占位符%s# 执行 insert 增加的语句  如果出现异常对异常处理try:cursor.execute(sql1)db.commit() #进行数据库提交,写入数据库except:cursor.rollback() #数据回滚,多次操作要么都执行,要么都不执行print('写入失败')# 关闭游标连接
cursor.close()
# 关闭数据库连接
db.close()
print('写入成功!')

把爬取出来的数据按逗号分割,用sql语言的insert插入到东方财富数据表,value赋值。使用execute()方法,执行sql语句后一定要用commit()方法提交,在数据库里增、删、改的时候,必须要进行提交,否则插入的数据不生效。rollback()方法:不想提交增、删、改操作,用此方法回滚取消操作,有多次操作时,全部取消。用try捕获异常,如果执行sql或向数据库提交时有异常,就取消所有对数据库的修改操作。

最终效果

Python爬取数据并写入MySQL相关推荐

  1. python爬取新闻并归数据库_Python爬取数据并写入MySQL数据库操作示例

    Python爬取数据并写入MySQL数据库的实例 首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据. 按 F12 或 ctrl+u 审查元 ...

  2. python爬取mysql数据_Python爬取数据并写入MySQL数据库的实例

    Python爬取数据并写入MySQL数据库的实例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python爬取数据并写入MySQL数据库的实例.txt ] (友 ...

  3. python爬取新闻存入数据库_Python爬取数据并写入MySQL数据库的实例

    按 F12 或 ctrl+u 审查元素,结果如下: 结构很清晰简单,我们就是要爬 tr 标签里面的 style 和 tr 下几个并列的 td 标签,下面是爬取的代码: #!/usr/bin/env p ...

  4. 爬取数据并写入MySQL数据库

    1.爬取思路总结概述: a.请求网页,获取json数据:request函数 b.使正则re 模块,提取出 { {--} }信息所在部分的字典 :re.search() c.为了防止连续请求中出现,IP ...

  5. python爬虫开发数据库设计入门经典_Python3实现的爬虫爬取数据并存入mysql数据库操作示例...

    本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作.分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单.罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chr ...

  6. python爬取数据时报错:`aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sea

    python爬取数据时报错:aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sear ...

  7. Python:爬取数据出现response.status_code为403解决方法

    目录 前言 1. 原理 2. 代码 前言 出现403的返回结果 主要是有些服务器为了防止访问量过大,承受服务器的压力,或者是拒绝你的访问.服务器接收到这个信息,理应返回了这个403的信息 在前一块的代 ...

  8. 练习使用Python post请求爬取数据,并用mySQL数据库进行存储

    2019独角兽企业重金招聘Python工程师标准>>> 我看了许多教程,之前练习过爬取百度百科和汽车之家,都没有成功,可能功力不到,有些问题总看不出到底是哪里出了毛病. 我看得其中有 ...

  9. Python爬取数据存储到本地文本文件

    前面说过Python爬取的数据可以存储到文件.关系型数据库.非关系型数据库.前面两篇文章没看的,可快速戳这里查看!https://mp.weixin.qq.com/s/A-qry4r3ymuCLXLB ...

最新文章

  1. static用法解析---java语言
  2. h5+ 获取当前位置 并获取当前天气
  3. Linux中用mkdir同时创建多个文件夹
  4. linux 常见服务端口
  5. PPT 下载 | 神策数据算法专家:推荐系统的实践与思考(上)
  6. 实体类和数据表的映射异常(XXX is not mapping[ ])
  7. ASP.Net防范XSS漏洞攻击的利器HtmlSanitizer
  8. 链表之删除单链表倒数第K个节点
  9. js中同名的函数的调用情况
  10. 目标识别、目标跟踪算法总结
  11. linux gmac10下载,ethmac10g verilog代码 10G eth mac verilog代码参考下载 - 下载 - 搜珍网...
  12. VS2015 更换序列号
  13. 计算机二级 word 论文格式,(计算机二级word练习3.doc
  14. html中怎样写css路径,CSS 书写位置
  15. 【教你区分】TVS二极管和稳压二极管的不同
  16. 简单内网穿透-利用树莓派-低成本建站 无需公网ip
  17. 《操作系统真象还原》第十四章 ---- 实现文件系统 任务繁多 饭得一口口吃路得一步步走啊(下一)
  18. Thinkpad在Linux下指点杆和无线网络的配置和故障解决方法
  19. 2019年华北五省计算机应用大赛官网,【喜讯】我校学子在2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛中获佳绩-天津城建大学...
  20. webrtc音频QOS方法一(NetEQ之音频网络延时DelayManager计算)

热门文章

  1. 浏览器的用户代理(User-Agent)
  2. 字符串【特殊变态】方法
  3. 北京邮电大学计算机学院交换组,2021北京邮电大学计算机学院网络与交换技术国家重点实验室招聘1人公告(劳务派遣)...
  4. 北邮计算机学院五组夏森,前辈种树 | 从双非软件到北邮计算机(各路打击后顽强活着)...
  5. 网络安全温晓飞老师的课12day 笔记
  6. GDKOI2016 Day1 T2 不稳定的传送门
  7. 【信奥赛一本通】1333:【例2-2】Blah数集(详细代码)
  8. 倍福TwinCAT3第三方伺服电机——以汇川IS620N伺服为例子
  9. js银行卡luhm校验,验证银行卡号并返回开户行(三方插件和在线验证)
  10. html背景图片语法,下列哪一项是css添加背景图片的正确语法构成?()