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'。

爬取中国大学排名

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

  1. beautifulsoup爬取网页中的表格_PYTHON爬取数据储存到excel

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

  2. bs4爬取的时候有两个标签相同_python爬虫初体验,爬取中国最好大学网大学名次...

    程序员天天只顾写生活琐事的文章可就太对不起其他的程序员们了,某大佬给我在线寄了一张刀片的图片,催更技术分享,不得不动手了.从今年刚开始学习python,美妙的语法令人陶醉,好用的第三方库令人爱不释手. ...

  3. 将爬取的数据保存到Excel表格

    第一步.导入模块 import xlwt # 导入写入excel需要的包 第二步.定义函数,将爬取好的数据保存到excel文件中,下面以保存python的关键词为例,介绍详细流程. def write ...

  4. Python--爬虫爬取的数据保存到excel

    Python–爬虫爬取的数据保存到excel 文章目录 Python--爬虫爬取的数据保存到excel 一.excel表格存储 二.python3.9没有自带的xlwt模块和xlrd,需要自行下载 三 ...

  5. selenium爬取网页表格数据并存到Excel

    简单介绍 1.登录到要爬取信息的页面 登录系统(填写账号密码)→进入表格数据所在的网页页面→定位下拉选框并进行选择→定位时间框选择日期→在选择日期时弹出的是另一个网页窗口进行选择,所以要将切换环境到日 ...

  6. python爬取拉勾网给定关键词职位信息存入数据库_Python 爬取拉勾网python职位信息...

    今天的任务是爬取拉勾网的职位信息. 首先,我们进入拉勾网,然后在职位搜索栏搜索Python 的同时,打开控制面板F12,来查看网页构成. 在XHR里,可以清楚的看见Ajax请求,所以需要使用sessi ...

  7. bs4爬取的时候有两个标签相同_10分钟用Python爬取最近很火的复联4影评

    <复仇者联盟4:终局之战>已经上映快三个星期了,全球票房破24亿美元,国内票房破40亿人民币. 虽然现在热度逐渐下降,但是我们还是恬不知耻地来蹭一蹭热度.上映伊始<复联4>的豆 ...

  8. bs4爬取的时候有两个标签相同_4.4 爬虫中的bs4数据爬取步骤

    >>.第三方包先安装 beatifulsoup抓取工具 位置:第三方开发包,如果使用,则需要单独下载的工具包 安装:后台命令:9版本以下----pip install bs4 或者 pip ...

  9. bs4爬取的时候有两个标签相同_利用Python爬取OPGG上英雄联盟英雄胜率及选取率信息!...

    一.分析网站内容 本次爬取网站为opgg,网址为:" http://www.op.gg/champion/statistics " 由网站界面可以看出,右侧有英雄的详细信息,以Ga ...

最新文章

  1. 【Tools】Markdown数学符号公式(史上最全公式表)
  2. 算法 - 最好、最坏、平均复杂度
  3. qq邮箱电脑版登录入口_青骄第二课堂学生平台登录入口,青骄第二课堂登录入口(官网手机版入口:https://m.2class.com/)...
  4. 在2011年QCon北京大会上的主题分享内容——Keynote
  5. 使用 Pandas GUI 进行数据探索
  6. Spark内存管理(1)—— 静态内存管理
  7. 寒假CF1 C-龟龟
  8. 51单片机外围模块——DS1302时钟模块
  9. suse linux 忘记root密码,SUSE linux 忘记root密码
  10. java英文姓名随机生成_java随机生成中国人姓名
  11. 命令行 降低IE版本 IE11降到IE8
  12. 关于Jqueryweui 的select联动用法
  13. 小米9下拉状态栏失效
  14. 使用GLAD加载OpenGL的库
  15. 测试开发面试题160道17类21339字
  16. 计算机ip如何设置,win7电脑ip地址怎么设置_win7电脑ip怎么设置-win7之家
  17. mysql不小心删除root恢复
  18. 从零开始Tableau | 10.表计算-基础
  19. JavaScript数组扁平化
  20. python图例重复显示_python matplotlib图例重复

热门文章

  1. SAP Spartacus Delivery Mode Component单元测试的Mock设计图
  2. SAP Spartacus PagelayoutComponent里的template
  3. SAP Spartacus里的concurrently依赖
  4. ant build.xml文件中能使用的属性介绍
  5. Fiori Elements - detail view layout analysis
  6. Cluster table import - BSP UI component source code is actually stored in cluster table
  7. time Interval in SAP UI5 SalesPipeline
  8. SAP Cloud for Customer的Opportunity搜索前台实现原理
  9. 如何判断Marketing Cloud里OData服务调用成功了
  10. 安装python3.7.0的步骤_CentOS7下简单安装python3.7.0步骤