介绍
小编给大家分享一下Python爬取数据并将数据保存到excel中的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
这次主要是爬了京东上一双鞋的相关评论:将数据保存到excel中并可视化展示相应的信息
主要的Python代码如下:
文件1
#将excel中的数据进行读取分析 进口openpyxl 进口matplotlib。pyplot作为坑#数据统计用的 工作=openpyxl.load_workbook(& # 39;销售数据.xlsx& # 39;) 表=工作。活跃#获取活动表 #获取最大行数和最大列数 行=sheet.max_row 关口=sheet.max_column lst=[] #用于存储鞋子码数 因为我在范围(2,+ 1行): 大?sheet.cell(我,3)value lst.append(大小) #以上已经将excel中的数据读取完毕 #一下操作就你行统计不同码数的数量 & # 39;& # 39;& # 39;python中有一个数据结构叫做字典,使用鞋码做键,使用销售数量做值# 39;& # 39;& # 39; dic_size={} lst的项目: dic_size[项目]=0 lst的项目: 在dic_size大小: #遍历字典 如果项目==大小: dic_size(大小)+=1 打破 在dic_size:项 print(项目,dic_size[项目]) #弄成百分比的形式 lst_total=[] 在dic_size:项 lst_total.append([项,dic_size[项目],dic_size(项)/160 * 1.0)) #接下来进行数据的可视化(进行画饼操作) 标签=[[0]项+ & # 39;码& # 39;在lst_total项]#使用列表生成式,得到饼图的标签 压裂=[[2]项条目lst_total) #饼图中的数据源 pit.rcParams [& # 39; font.family& # 39;]=[& # 39; SimHei& # 39;] #单独的表格乱码的处理方式 pit.pie (x=压裂、标签=标签,autopct=& # 39; % 1.1 f % % & # 39;) # pit.show()进行结果的图片的展示 pit.savefig(& # 39;图jpg # 39;)
文件2
#所涉及到的是请求和openpyxl数据的存储和数据的清洗以及统计然后就是matplotlib进行数据的可视化 #静态数据点击元素中点击发现在html中,服务器已经渲染好的内容,直接发给浏览器,浏览器解释执行, #动态数据:如果点击下一页。我们的地址栏(加后缀但是前面的地址栏没变也算)(也可以点击2和3页)没有发生任何变化说明是动态数据,说明我们的数据是后来被渲染到html中的。他的数据根本不在html中的。 #动态查看网络然后用的url是网络里面的头 #安装第三方模块输入cmd之后pip安装加名字例如请求 进口的要求 进口再保险 导入的时间 进口json 进口openpyxl #用于操作excel文件的 头={& # 39;用户代理# 39;:& # 39;Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/74.0.3729.131 Safari 537.36 & # 39;} #创建头部信息 def get_comments (productId、页面): url=癶ttps://club.jd.com/comment/productPageComments.action& # 63;调=fetchJSON_comment98& productId={0},得分=0,sortType=5,页={1},页大?10,isShadowSku=0,褶皱=1“.format (productId、页面) resp=请求。get (url,标题=标题) s=resp.text.replace (& # 39; fetchJSON_comment98(& # 39; & # 39; & # 39;) #进行替换操作。获取到所需要的相应的json,也就是去掉前后没用的东西 s=s.replace (& # 39;); & # 39; & # 39; & # 39;) json_data=https://www.yisu.com/zixun/json.loads (s) #进行数据json转换 返回json_data #获取最大页数 def get_max_page (productId): dis_data=get_comments (productId,0) #调用刚才写的函数进行向服务器的访问请求,获取字典数据 返回dis_data [' maxPage '] #获取他的最大页数。每一页都有最大页数 #进行数据提取 def get_info (productId): max_page=get_max_page (productId) lst=[] #用于存储提取到的商品数据 页面的范围(1,max_page + 1): #获取没页的商品评论 评论=get_comments (productId页面) comm_list=评论(“评论”)#根据comnents获取到评论的列表(每页有10条评论) #遍历评论列表,获取其中的相应的数据 在comm_list:项 #每条评论分别是一字典。在继续通过关键来获取值 内容=项目(“内容”) 颜色=项目(“productColor”) 大?项目(“productSize”) lst.append([内容、颜色、大小])#将每条评论添加到列表当中 time . sleep(3) #防止被京东封ip进行一个时间延迟。防止访问次数太频繁 保存(lst) def保存(lst): #把爬取到的数据进行存储,保存到excel中 工作=openpyxl.Workbook() #用于创建工作簿对象 表=工作。活跃#获取活动表(一个工作簿有三个表) #遍历列表将数据添加到excel中。列表中的一条数据在表中是一行 biaotou='评论”、“颜色”,“大”小 sheet.append (biaotou) lst的项目: sheet.append(项) #将excel保存到磁盘上 wk.save(“销售数据.xlsx”) if __name__==癬_main__”: productId=' 66749071789 ' get_info (productId) 打印(“ok”)Python爬取数据并将数据保存到excel中的方法