PYTHON爬取数据储存到excel

大家周末好呀,我是滑稽君。前两天上网课时朋友发来消息说需要爬取一些数据,然后储存到excel里。记得我公众号里发过关于爬虫的文章,所以找我帮个忙。于是滑稽君花时间研究了一下完成了这个任务。那本期滑稽君就与大家分享一下在爬取完数据之后,如何储存在excel里面的问题。

先说一下我的大概思路。因为之前已经写了一些爬虫工具,我们稍加修改就可以直接使用。重点是数据如果储存到excel里,并且实现自动换行。没有人的数据是全部列在一行的。根据我大PYTHON“除了不会生孩子,其他的什么都会”定理。在查找资料时,我'顺理成章'的找到了“xlwt”这样一个python用来与excel玩耍的库。那它都能干啥呢?它可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,一句话就是人使用excel实现的功能,这个扩展包都可以实现。我们以之前爬取中国大学排名的代码为例子。

源代码:

import requestsfrom bs4 import BeautifulSoupimport bs4import xlwtdef getHTMLText(url):  #抓取网页    try:        r = requests.get(url, timeout = 30)  #设置超时时间为30秒        r.raise_for_status()  #异常情况        r.encoding = r.apparent_encoding  #替换编码        return r.text    except:        return ""def fillUnivList(ulist, html):  #提取关键信息添加到列表(核心功能)    soup = BeautifulSoup(html, "html.parser")    for tr in soup.find('tbody').children:   #tr的子标签里可能含有字符串,影响我们抓取下一所大学的信息        if isinstance(tr, bs4.element.Tag):  #我们过滤掉非标签信息的其他信息            tds = tr('td')  #将所有的td标签存为新的tds列表            ulist.append([tds[0].string,tds[1].string,tds[2].string,tds[3].string])            #抓取标签之间的内容,这一步我们可以控制想要抓取的信息#重点内容开始,写入excel,及自动换行def printUnivList(ulist, num):    workbook = xlwt.Workbook()    #创建工作表    # 创建工作表worksheet,填入表名    worksheet = workbook.add_sheet('中国排名爬取')    h=0 #设置变量h来代替行数    #print("{:^10}\t\t{:^6}\t\t{:^10}\t\t{:^10}".format("排名","学校名称","省份","总分"))    for i in range (num):        u = ulist[i]        #print("{:^10}\t\t{:^6}\t\t{:^10}\t\t{:^10}".format(u[0], u[1], u[2], u[3]))        # 在表中写入相应的数据,        worksheet.write(h, 0, u[0]) #排名        worksheet.write(h, 1, u[1]) #学校        worksheet.write(h, 2, u[2]) #所在地        worksheet.write(h, 3, u[3]) #综合        h=h+1    # 保存表    workbook.save('hello2.xls')               def main():    uinfo = []    url =  'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'    html = getHTMLText(url)    fillUnivList(uinfo, html)    printUnivList(uinfo, 549)#想打印多少数据自己输入num的值main()

可以看到,31-32行代码中我们把爬来的数据放入列表,然后打印出来。我们现在需要把列表里的值打印到excel单元格中 。 worksheet.write(0, 0, 'hello world')的功能就是在第一行第一列插入'hello world'。前两个数字分别代表行和列。大家记住他这里是从0开始算的。我们期望打印出排名、学校、所在地、综合评分这4个信息。也就是说我们在输入4次之后需要换行来输入下一所学校的基本信息。怎么解决呢?

我们定义一个变量h=0,让它代表行,打印4条信息为一个循环,每循环一次我们让h+1以此来实现我们自动换行的功能。到处我们需要的功能都实现了,运行可以看到当前目录下出现了一个excel表格。打开可以看到里面就是我们想要的信息。我们总共爬取了500多条学校的信息。这要是一条条的人工输入得到什么时候。还好我们有python,我们只需编写好代码,剩下的体力活都交给python就OK啦。

如果你的python环境里没有这个第三方库,你还需要做的一件事就是打开CMD,输入'pip install xlwt'。

爬取中国大学排名

beautifulsoup爬取网页中的表格_PYTHON爬取数据储存到excel相关推荐

  1. beautifulsoup爬取网页中的表格_python爬取哔哩哔哩网页弹幕内容,并将爬取的内容以五角星的形式显示出来...

    转载:03 爬虫实例-获取网页弹幕内容 思路: 向哔哩哔哩网站发送请求 请求成功后,解析爬取的弹幕内容保存到一个文件中 读取文件并分析弹幕内容中词组或文字出现的频率 将这些词组或文字组成五角星图形 组 ...

  2. beautifulsoup爬取网页中的表格_Python爬虫爬取BT之家找电影资源

    一.写在前面 最近看新闻说圣城家园(SCG)倒了,之前BT天堂倒了,暴风影音也不行了,可以说看个电影越来越费力,国内大厂如企鹅和爱奇艺最近也出现一些幺蛾子,虽然目前版权意识虽然越来越强,但是很多资源在 ...

  3. r语言html爬虫,如何用R语言爬取网页中的表格

    今天我们要讲怎么样用R写一个小的爬虫,来爬取网页中的表格.这里的网页指html页面.稍微百度一下大家就可以知道,html是一种高度结构化的文本标记语言.html表格所用的标签是 . 所以我们的思路大概 ...

  4. java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码

    [实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...

  5. bs4爬取的时候有两个标签相同_PYTHON爬取数据储存到excel

    PYTHON爬取数据储存到excel 大家周末好呀,我是滑稽君.前两天上网课时朋友发来消息说需要爬取一些数据,然后储存到excel里.记得我公众号里发过关于爬虫的文章,所以找我帮个忙.于是滑稽君花时间 ...

  6. beautifulsoup爬取网页中的表格_用 Python 爬取网页

    来自公众号:优达学城Udacity 作者:Kerry Parker 编译:欧剃 作为数据科学家的第一个任务,就是做网页爬取.那时候,我对使用代码从网站上获取数据这项技术完全一无所知,它偏偏又是最有逻辑 ...

  7. 使用Python爬取网页中的表格保存到word

    经常遇到的是爬取网页写入表格中,保存为csv格式.txt格式.最近接到一个任务,复制网页中文字和表格保存到word中,不仅有文字,还有表格.一看有100多页,要是一页一页的复制,要干到什么年月啊. 经 ...

  8. python保存表格_python怎么把数据保存为excel

    在python中把数据保存为excel的方法:首先下载xlwt:然后使用[win+R]快捷键打开cmd,切换目录到下载的文件地址并输入[python setup.py install]:再调用xlwt ...

  9. python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...

最新文章

  1. Java集合学习_Java集合学习(适合新手)
  2. 递归查询mysql数据库设计
  3. git cherry-pick简介
  4. 《Selenium自动化测试指南》—第1章1.1节自动化测试基础
  5. Response.ContentType所有类型例举
  6. 网页php脚本是什么意思,php脚本是什么意思
  7. linux安装grpc占用空间大,grpc linux安装-Go语言中文社区
  8. oracle 递归计算,SQL(Oracle)中的递归计算
  9. 利用脚本启动java程序
  10. python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址
  11. java版mc植物生长条件_植物生长三大必要条件
  12. 利用sklearn对红酒数据集分类
  13. Rider 使用Emmylua 代码提示
  14. 使用一个运放滤三次谐波 二阶有源带通滤波器的电路设计及波形效果
  15. 前端cookie 放到请求头_ajax请求头cookie问题
  16. 【PTA L1-028】判断素数 开方判断质数
  17. 运营者想针对公众号吸粉做一些运营活动,怎么做?
  18. 近几十年基础科学的停滞影响研究
  19. 阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析(含phil补充)
  20. 通过文献计量学助您发表高影响因子论文—基于Citespace和vosviewer文献计量学可视化SCI论文高效写作方法

热门文章

  1. 【redis】redis 各种数据类型应用和实现方式
  2. 【ElasticSearch】Es 源码之 GatewayMetaState 源码解读
  3. 【clickhouse】ClickHouse中的低基数(LowCardinality)类型
  4. 【Docker】Docker安装telnet
  5. 语法分析—自上而下分析
  6. NullPointerException : HiveAuthorizerImpl.checkPrivileges(HiveAuthorizerImpl.java:85)
  7. apache、node.js、nginx、tomcat的关系
  8. 多线程中的事务回滚,你真的用对了吗?
  9. 新年发财专属红包封面,高端大气上档次!
  10. jsp九大内置对象和四种属性范围介绍