Python采集猫眼两万条数据 对《无名之辈》影评进行分析

一、说明

本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论。

运行环境:Win10/Python3.5。

分析工具:jieba、wordcloud、pyecharts、matplotlib。

基本流程:下载内容 ---> 分析获取关键数据 ---> 保存本地文件 ---> 分析本地文件制作图表

注意:本文所有图文和源码仅供学习,请勿他用,转发请注明出处!

本文主要参考:https://mp.weixin.qq.com/s/mTxxkwRZPgBiKC3Sv-jo3g

二、开始采集

2.1、分析数据接口:

为了健全数据样本,数据直接从移动端接口进行采集,连接如下,其中橙色部分为猫眼电影ID,修改即可爬取其他电影。

链接地址:http://m.maoyan.com/mmdb/comments/movie/1208282.json?v=yes&offset=15&startTime=

    

接口返回的数据如下,主要采集(昵称、城市、评论、评分和时间),用户评论在 json['cmts'] 中:

    

2.2、爬虫程序核心内容(详细可以看后面源代码):

>启动脚本需要的参数如下(脚本名+猫眼电影ID+上映日期+数据保存的文件名):.\myMovieComment.py 1208282 2016-11-16 myCmts2.txt

>下载html内容:download(self, url),通过python的requests模块进行下载,将下载的数据转成json格式  

def download(self, url):
 """下载html内容"""

 print("正在下载URL: "+url)
 # 下载html内容
 response = requests.get(url, headers=self.headers)

 # 转成json格式数据
 if response.status_code == 200:
  return response.json()
 else:
  # print(html.status_code)
  print('下载数据为空!')
  return ""

>然后就是对已下载的内容进行分析,就是取出我们需要的数据:

def parse(self, content):
 """分析数据"""

 comments = []
 try:
  for item in content['cmts']:
  comment = {
   'nickName': item['nickName'], # 昵称
   'cityName': item['cityName'], # 城市
   'content': item['content'],  # 评论内容
   'score': item['score'],  # 评分
   'startTime': item['startTime'], # 时间
  }
  comments.append(comment)

 except Exception as e:
  print(e)

 finally:
  return comments

>将分析出来的数据,进行本地保存,方便后续的分析工作: 

 def save(self, data):
  """写入文件"""

  print("保存数据,写入文件中...")
  self.save_file.write(data)

> 爬虫的核心控制也即爬虫的程序启动入口,管理上面几个方法的有序执行:

def start(self):
 """启动控制方法"""

 print("爬虫开始...\r\n")

 start_time = self.start_time
 end_time = self.end_time

 num = 1
 while start_time > end_time:
  print("执行次数:", num)
  # 1、下载html
  content = self.download(self.target_url + str(start_time))

  # 2、分析获取关键数据
  comments = ''
  if content != "":
  comments = self.parse(content)

  if len(comments) <= 0:
  print("本次数据量为:0,退出爬取!\r\n")
  break

  # 3、写入文件
  res = ''
  for cmt in comments:
  res += "%s###%s###%s###%s###%s\n" % (cmt['nickName'], cmt['cityName'], cmt['content'], cmt['score'], cmt['startTime'])
  self.save(res)

  print("本次数据量:%s\r\n" % len(comments))

  # 获取最后一条数据的时间 ,然后减去一秒
  start_time = datetime.strptime(comments[len(comments) - 1]['startTime'], "%Y-%m-%d %H:%M:%S") + timedelta(seconds=-1)
  # start_time = datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")

  # 休眠3s
  num += 1
  time.sleep(3)

 self.save_file.close()
 print("爬虫结束...")

2.3 数据样本,最终爬取将近2万条数据,每条记录的每个数据使用 ### 进行分割:

三、图形化分析数据

3.1、制作观众城市分布热点图,(pyecharts-geo):

从图表可以轻松看出,用户主要分布地区,主要以沿海一些发达城市群为主:

def createCharts(self):
 """生成图表"""

 # 读取数据,格式:[{"北京", 10}, {"上海",10}]
 data = self.readCityNum()

 # 1 热点图
 geo1 = Geo("《无名之辈》观众位置分布热点图", "数据来源:猫眼,Fly采集", title_color="#FFF", title_pos="center", width="100%", height=600, background_color="#404A59")

 attr1, value1 = geo1.cast(data)

 geo1.add("", attr1, value1, type="heatmap", visual_range=[0, 1000], visual_text_color="#FFF", symbol_size=15, is_visualmap=True, is_piecewise=False, visual_split_number=10)
 geo1.render("files/无名之辈-观众位置热点图.html")

 # 2 位置图
 geo2 = Geo("《无名之辈》观众位置分布", "数据来源:猫眼,Fly采集", title_color="#FFF", title_pos="center", width="100%", height=600,
   background_color="#404A59")

 attr2, value2 = geo1.cast(data)
 geo2.add("", attr2, value2, visual_range=[0, 1000], visual_text_color="#FFF", symbol_size=15,
  is_visualmap=True, is_piecewise=False, visual_split_number=10)
 geo2.render("files/无名之辈-观众位置图.html")

 # 3、top20 柱状图
 data_top20 = data[:20]
 bar = Bar("《无名之辈》观众来源排行 TOP20", "数据来源:猫眼,Fly采集", title_pos="center", width="100%", height=600)
 attr, value = bar.cast(data_top20)
 bar.add('', attr, value, is_visualmap=True, visual_range=[0, 3500], visual_text_color="#FFF", is_more_utils=True, is_label_show=True)
 bar.render("files/无名之辈-观众来源top20.html")

 print("图表生成完成")

3.2、制作观众人数TOP20的柱形图,(pyecharts-bar):

3.3、制作评论词云,(jieba、wordcloud):

生成词云核心代码:

def createWordCloud(self):
 """生成评论词云"""
 comments = self.readAllComments() # 19185

 # 使用 jieba 分词
 commens_split = jieba.cut(str(comments), cut_all=False)
 words = ''.join(commens_split)

 # 给词库添加停止词
 stopwords = STOPWORDS.copy()
 stopwords.add("电影")
 stopwords.add("一部")
 stopwords.add("无名之辈")
 stopwords.add("一部")
 stopwords.add("一个")
 stopwords.add("有点")
 stopwords.add("觉得")

 # 加载背景图片
 bg_image = plt.imread("files/2048_bg.png")

 # 初始化 WordCloud
 wc = WordCloud(width=1200, height=600, background_color='#FFF', mask=bg_image, font_path='C:/Windows/Fonts/STFANGSO.ttf', stopwords=stopwords, max_font_size=400, random_state=50)

 # 生成,显示图片
 wc.generate_from_text(words)
 plt.imshow(wc)
 plt.axis('off')
 plt.show()

四、修改pyecharts源码

4.1、样本数据的城市简称与数据集完整城市名匹配不上:

使用位置热点图时候,由于采集数据城市是一些简称,与pyecharts的已存在数据的城市名对不上,所以对源码进行一些修改,方便匹配一些简称。

黔南 =>黔南布依族苗族自治州

模块自带的全国主要市县经纬度在:[python安装路径]\Lib\site-packages\pyecharts\datasets\city_coordinates.json

由于默认情况下,一旦城市名不能完全匹配就会报异常,程序会停止,所以对源码修改如下(报错方法为 Geo.add()),其中添加注析为个人修改部分:

def get_coordinate(self, name, region="中国", raise_exception=False):
 """
 Return coordinate for the city name.

 :param name: City name or any custom name string.
 :param raise_exception: Whether to raise exception if not exist.
 :return: A list like [longitude, latitude] or None
 """
 if name in self._coordinates:
  return self._coordinates[name]

 coordinate = get_coordinate(name, region=region)

 # [ 20181204 添加
 # print(name, coordinate)
 if coordinate is None:
  # 如果字典key匹配不上,尝试进行模糊查询
  search_res = search_coordinates_by_region_and_keyword(region, name)
  # print("###",search_res)
  if search_res:
  coordinate = sorted(search_res.values())[0]
 # 20181204 添加 ]

 if coordinate is None and raise_exception:
  raise ValueError("No coordinate is specified for {}".format(name))

 return coordinate

相应的需要对 __add()方法进行如下修改:

五、附录-源码

*说明:源码为本人所写,数据来源为猫眼,全部内容仅供学习,拒绝其他用途!转发请注明出处!

5.1 采集源码

# -*- coding:utf-8 -*-

import requests
from datetime import datetime, timedelta
import os
import time
import sys

class MaoyanFilmReviewSpider:
 """猫眼影评爬虫"""

 def __init__(self, url, end_time, filename):
  # 头部
  self.headers = {
   'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
  }

  # 目标URL
  self.target_url = url

  # 数据获取时间段,start_time:截止日期,end_time:上映时间
  now = datetime.now()

  # 获取当天的 零点
  self.start_time = now + timedelta(hours=-now.hour, minutes=-now.minute, seconds=-now.second)
  self.start_time = self.start_time.replace(microsecond=0)
  self.end_time = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")

  # 打开写入文件, 创建目录
  self.save_path = "files/"
  if not os.path.exists(self.save_path):
   os.makedirs(self.save_path)
  self.save_file = open(self.save_path + filename, "a", encoding="utf-8")

 def download(self, url):
  """下载html内容"""

  print("正在下载URL: "+url)
  # 下载html内容
  response = requests.get(url, headers=self.headers)

  # 转成json格式数据
  if response.status_code == 200:
   return response.json()
  else:
   # print(html.status_code)
   print('下载数据为空!')
   return ""

 def parse(self, content):
  """分析数据"""

  comments = []
  try:
   for item in content['cmts']:
    comment = {
     'nickName': item['nickName'],  # 昵称
     'cityName': item['cityName'],  # 城市
     'content': item['content'],   # 评论内容
     'score': item['score'],    # 评分
     'startTime': item['startTime'], # 时间
    }
    comments.append(comment)

  except Exception as e:
   print(e)

  finally:
   return comments

 def save(self, data):
  """写入文件"""

  print("保存数据,写入文件中...")
  self.save_file.write(data)

 def start(self):
  """启动控制方法"""

  print("爬虫开始...\r\n")

  start_time = self.start_time
  end_time = self.end_time

  num = 1
  while start_time > end_time:
   print("执行次数:", num)
   # 1、下载html
   content = self.download(self.target_url + str(start_time))

   # 2、分析获取关键数据
   comments = ''
   if content != "":
    comments = self.parse(content)

   if len(comments) <= 0:
    print("本次数据量为:0,退出爬取!\r\n")
    break

   # 3、写入文件
   res = ''
   for cmt in comments:
    res += "%s###%s###%s###%s###%s\n" % (cmt['nickName'], cmt['cityName'], cmt['content'], cmt['score'], cmt['startTime'])
   self.save(res)

   print("本次数据量:%s\r\n" % len(comments))

   # 获取最后一条数据的时间 ,然后减去一秒
   start_time = datetime.strptime(comments[len(comments) - 1]['startTime'], "%Y-%m-%d %H:%M:%S") + timedelta(seconds=-1)
   # start_time = datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")

   # 休眠3s
   num += 1
   time.sleep(3)

  self.save_file.close()
  print("爬虫结束...")

if __name__ == "__main__":
 # 确保输入参数
 if len(sys.argv) != 4:
  print("请输入相关参数:[moveid]、[上映日期]和[保存文件名],如:xxx.py 42962 2018-11-09 text.txt")
  exit()

 # 猫眼电影ID
 mid = sys.argv[1] # "1208282" # "42964"
 # 电影上映日期
 end_time = sys.argv[2] # "2018-11-16" # "2018-11-09"
 # 每次爬取条数
 offset = 15
 # 保存文件名
 filename = sys.argv[3]

 spider = MaoyanFilmReviewSpider(url="http://m.maoyan.com/mmdb/comments/movie/%s.json?v=yes&offset=%d&startTime=" % (mid, offset), end_time="%s 00:00:00" % end_time, filename=filename)
 # spider.start()

 spider.start()
 # t1 = "2018-11-09 23:56:23"
 # t2 = "2018-11-25"
 #
 # res = datetime.strptime(t1, "%Y-%m-%d %H:%M:%S") + timedelta(days=-1)
 # print(type(res))

MaoyanFilmReviewSpider.py

5.2 分析制图源码

# -*- coding:utf-8 -*-
from pyecharts import Geo, Bar, Bar3D
import jieba
from wordcloud import STOPWORDS, WordCloud
import matplotlib.pyplot as plt

class ACoolFishAnalysis:
 """无名之辈 --- 数据分析"""
 def __init__(self):
  pass

 def readCityNum(self):
  """读取观众城市分布数量"""
  d = {}

  with open("files/myCmts2.txt", "r", encoding="utf-8") as f:
   row = f.readline()

   while row != "":
    arr = row.split('###')

    # 确保每条记录长度为 5
    while len(arr) < 5:
     row += f.readline()
     arr = row.split('###')

    # 记录每个城市的人数
    if arr[1] in d:
     d[arr[1]] += 1
    else:
     d[arr[1]] = 1 # 首次加入字典,为 1

    row = f.readline()

   # print(len(comments))
   # print(d)

  # 字典 转 元组数组
  res = []
  for ks in d.keys():
   if ks == "":
    continue
   tmp = (ks, d[ks])
   res.append(tmp)

  # 按地点人数降序
  res = sorted(res, key=lambda x: (x[1]),reverse=True)
  return res

 def readAllComments(self):
  """读取所有评论"""
  comments = []

  # 打开文件读取数据
  with open("files/myCmts2.txt", "r", encoding="utf-8") as f:
   row = f.readline()

   while row != "":
    arr = row.split('###')

    # 每天记录长度为 5
    while len(arr) < 5:
     row += f.readline()
     arr = row.split('###')

    if len(arr) == 5:
     comments.append(arr[2])

    # if len(comments) > 20:
    #  break
    row = f.readline()

  return comments

 def createCharts(self):
  """生成图表"""

  # 读取数据,格式:[{"北京", 10}, {"上海",10}]
  data = self.readCityNum()

  # 1 热点图
  geo1 = Geo("《无名之辈》观众位置分布热点图", "数据来源:猫眼,Fly采集", title_color="#FFF", title_pos="center", width="100%", height=600, background_color="#404A59")

  attr1, value1 = geo1.cast(data)

  geo1.add("", attr1, value1, type="heatmap", visual_range=[0, 1000], visual_text_color="#FFF", symbol_size=15, is_visualmap=True, is_piecewise=False, visual_split_number=10)
  geo1.render("files/无名之辈-观众位置热点图.html")

  # 2 位置图
  geo2 = Geo("《无名之辈》观众位置分布", "数据来源:猫眼,Fly采集", title_color="#FFF", title_pos="center", width="100%", height=600,
     background_color="#404A59")

  attr2, value2 = geo1.cast(data)
  geo2.add("", attr2, value2, visual_range=[0, 1000], visual_text_color="#FFF", symbol_size=15,
    is_visualmap=True, is_piecewise=False, visual_split_number=10)
  geo2.render("files/无名之辈-观众位置图.html")

  # 3、top20 柱状图
  data_top20 = data[:20]
  bar = Bar("《无名之辈》观众来源排行 TOP20", "数据来源:猫眼,Fly采集", title_pos="center", width="100%", height=600)
  attr, value = bar.cast(data_top20)
  bar.add('', attr, value, is_visualmap=True, visual_range=[0, 3500], visual_text_color="#FFF", is_more_utils=True, is_label_show=True)
  bar.render("files/无名之辈-观众来源top20.html")

  print("图表生成完成")

 def createWordCloud(self):
  """生成评论词云"""
  comments = self.readAllComments() # 19185

  # 使用 jieba 分词
  commens_split = jieba.cut(str(comments), cut_all=False)
  words = ''.join(commens_split)

  # 给词库添加停止词
  stopwords = STOPWORDS.copy()
  stopwords.add("电影")
  stopwords.add("一部")
  stopwords.add("无名之辈")
  stopwords.add("一部")
  stopwords.add("一个")
  stopwords.add("有点")
  stopwords.add("觉得")

  # 加载背景图片
  bg_image = plt.imread("files/2048_bg.png")

  # 初始化 WordCloud
  wc = WordCloud(width=1200, height=600, background_color='#FFF', mask=bg_image, font_path='C:/Windows/Fonts/STFANGSO.ttf', stopwords=stopwords, max_font_size=400, random_state=50)

  # 生成,显示图片
  wc.generate_from_text(words)
  plt.imshow(wc)
  plt.axis('off')
  plt.show()

if __name__ == "__main__":
 demo = ACoolFishAnalysis()
 demo.createWordCloud()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Python数据分析matplotlib设置多个子图的间距方法

    注意,要看懂这里,必须具备简单的Python数据分析知识,必须知道matplotlib的简单使用! 例1: plt.subplot(221) # 第一行的左图 plt.subplot(222) # 第一行的右图 plt.subplot(212) # 第二整行 plt.title('xxx') plt.tight_layout() #设置默认的间距 例2: for i in range(25): plt.subplot(5,5,i+1) plt.tight_layout() 例3: # 设定画图板

  • Python数据报表之Excel操作模块用法分析

    本文实例讲述了Python数据报表之Excel操作模块用法.分享给大家供大家参考,具体如下: 一 点睛 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量.资源利用.安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进一步加工处理.利用Python操作Excel的模块XlsxWriter(https://xlsxwriter.readthedocs.org),可以操作多个工作表的文字.数字.公式.图表等. 二

  • R语言 vs Python对比:数据分析哪家强?

    什么是R语言? R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因此称为R),现在由"R开发核心团队"负责开发.R基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行.R的语法是来自Scheme. R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux).W

  • 分享一下Python数据分析常用的8款工具

    Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性.Python可用于数据分析,但其单纯依赖Python本身自带的库进行数据分析还是具有一定的局限性的,需要安装第三方扩展库来增强分析和挖掘能力. Python数据分析需要安装的第三方扩展库有:Numpy.Pandas.SciPy.Matplotlib.Scikit-Learn.Keras.Gensim.Scrapy等,以下是千锋武汉Python培训老师对该第三方扩展库的

  • Python数据分析:手把手教你用Pandas生成可视化图表的教程

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后,pandas的使用变得更加普及,它的身影经常见于市场分析.爬虫.金融分析以及科学计算中. 作为数据分析工具的集大成者,pandas作者曾说,pandas中的可视化功能比plt更加简便和功能强大.实际上,如果是对图表细节有极高要求,那么建议大家使用matplotlib通过底层图表模块进行编码.当然,我

  • Python运用于数据分析的简单教程

    最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内容如下: 数据导入         导入本地的或者web端的CSV文件:     数据变换:     数据统计描述:     假设检验         单样本t检验:     可视化:     创建自定义函数. 数据导入 这是很关键的一步,为了后续的分析我们首先需要导入数据.通常来说,数据是CSV格式,就算不是,至少也可以转

  • PowerBI和Python关于数据分析的对比

    前言 如果你对数据分析有一定的了解,那你一定听说过一些亲民好用的数据分析的工具,如Excel.Tableau.PowerBI等等等等,它们都是数据分析的得力助手.像经常使用这些根据的伙伴肯定也有苦恼的时候,不足之处也是显而易见:操作繁琐,复用性差,功能相对局限单一. 很多经常会用到数据分析的伙伴会问有没有一款便捷好用的工具!肯定有啊,Python的出现和普及,很容易就能改变这些窘境! 怎么解决呢?--Python Python有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也

  • Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    一.说明 本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论. 运行环境:Win10/Python3.5. 分析工具:jieba.wordcloud.pyecharts.matplotlib. 基本流程:下载内容 ---> 分析获取关键数据 ---> 保存本地文件 ---> 分析本地文件制作图表 注意:本文所有图文和源码仅供学习,请勿他用,转发请注明出处! 本文主要参考:https://mp.weixin.qq.com/s/mTxxkwRZPgBiKC3Sv-

  • JavaScript如何一次性展示几万条数据

    有一位同事跟大家说他在网上看到一道面试题:"如果后台传给前端几万条数据,前端怎么渲染到页面上?",如何回答? 于是办公室沸腾了, 同事们讨论开了, 你一言我一语说出自己的方案. 有的说直接循环遍历生成html插到页面上:有的说应该用分页来处理:还有的说这个面试官是个白痴, 哪有后台传几万条数据给前端这种情况的:我仔细思考了一下,先不论后端到底会不会白痴到传几万条数据给前端,假如真碰到这种情况,那么如果前端获取到数据以后, 直接将数据转换成html字符串,通过DOM操作插入到页面,势必导

  • mysql查询优化之100万条数据的一张表优化方案

    1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. MyISAM只要简单的读出保存好的行数即可. 注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上where col 条件.其中col列是表的主键之外的其他具有唯一约束索引的列.这样查询时速度会很快.就是可

  • Js表格万条数据瞬间加载实现代码

    Js表格,万条数据瞬间加载 在Ajax动态加载数据的实际应用中,大家都习惯了一种思维方式:一条数据创建一行. 于是如果数量大的时候,一次性要加载完数据的话,浏览器就会卡上半天 受Flex的DataGrid控件的启发,在Flex的DataGrid控件中,展示数据的方法并不是有多少条数据就创建多少行,它最多只创建你在界面上所看到的十几二十行(假设为n行),如果数据多的话,在滚动过程中,会从数据中抽取你应该看到的这n行数据,重新展示在已经创建好的那n行控件中. 也就是说,Flex的DataGrid控件

  • 88秒插入1000万条数据到MySQL数据库表的操作方法

    我用到的数据库为,mysql数据库5.7版本的 首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (4232009 > 4194304). You can change this value on the server by setting the max_allo

  • 教你如何6秒钟往MySQL插入100万条数据的实现

    一.思路 往MySQL中插入1000000条数据只花了6秒钟! 关键点: 1.使用PreparedStatement对象 2.rewriteBatchedStatements=true 开启批量插入,插入只执行一次,所有插入比较快. 二. 代码 package test0823.demo1; import java.sql.*; /** * @author : Bei-Zhen * @date : 2020-08-24 0:43 */ public class JDBC2 { //static

  • 详解mybatis批量插入10万条数据的优化过程

    数据库 在使用mybatis插入大量数据的时候,为了提高效率,放弃循环插入,改为批量插入,mapper如下: package com.lcy.service.mapper; import com.lcy.service.pojo.TestVO; import org.apache.ibatis.annotations.Insert; import java.util.List; public interface TestMapper { @Insert("") Integer test

  • MySQL如何利用存储过程快速生成100万条数据详解

    1.在测试的时候为了测试大数据量的情况下项目的抗压能力我们通常要创造一些测试数据那么现在这个方法绝对好用 其中可能会有sql空间的报错可以自己尝试解决,这里做了分批插入,每次插入30万条,所以没有遇到类似的空间问题 首先,创建要插入100万数据的表格 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for sdb_b2c_orders -- ----

  • 用存储过程、GetRows()、抽取10万条数据的速度测试

    现有10W条数据,Access数据库保存 通过正常提取:  复制代码 代码如下: <%  Set conn= Server.CreateObject("ADODB.Connection")  c&Server.MapPath("db2.mdb")  conn.Open connstr Set rs = Server.CreateObject ("ADODB.Recordset")  sql = "Select * from

  • 抽取10万条数据,想起GetRows()

    现有10W条数据,Access数据库保存 通过正常提取: <%Set conn= Server.CreateObject("ADODB.Connection")connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db2.mdb")conn.Open connstr Set rs = Server.CreateObject ("A

随机推荐