beautifulsoup爬取网页中的表格_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相关推荐
- beautifulsoup爬取网页中的表格_python爬取哔哩哔哩网页弹幕内容,并将爬取的内容以五角星的形式显示出来...
转载:03 爬虫实例-获取网页弹幕内容 思路: 向哔哩哔哩网站发送请求 请求成功后,解析爬取的弹幕内容保存到一个文件中 读取文件并分析弹幕内容中词组或文字出现的频率 将这些词组或文字组成五角星图形 组 ...
- beautifulsoup爬取网页中的表格_Python爬虫爬取BT之家找电影资源
一.写在前面 最近看新闻说圣城家园(SCG)倒了,之前BT天堂倒了,暴风影音也不行了,可以说看个电影越来越费力,国内大厂如企鹅和爱奇艺最近也出现一些幺蛾子,虽然目前版权意识虽然越来越强,但是很多资源在 ...
- r语言html爬虫,如何用R语言爬取网页中的表格
今天我们要讲怎么样用R写一个小的爬虫,来爬取网页中的表格.这里的网页指html页面.稍微百度一下大家就可以知道,html是一种高度结构化的文本标记语言.html表格所用的标签是 . 所以我们的思路大概 ...
- java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码
[实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...
- bs4爬取的时候有两个标签相同_PYTHON爬取数据储存到excel
PYTHON爬取数据储存到excel 大家周末好呀,我是滑稽君.前两天上网课时朋友发来消息说需要爬取一些数据,然后储存到excel里.记得我公众号里发过关于爬虫的文章,所以找我帮个忙.于是滑稽君花时间 ...
- beautifulsoup爬取网页中的表格_用 Python 爬取网页
来自公众号:优达学城Udacity 作者:Kerry Parker 编译:欧剃 作为数据科学家的第一个任务,就是做网页爬取.那时候,我对使用代码从网站上获取数据这项技术完全一无所知,它偏偏又是最有逻辑 ...
- 使用Python爬取网页中的表格保存到word
经常遇到的是爬取网页写入表格中,保存为csv格式.txt格式.最近接到一个任务,复制网页中文字和表格保存到word中,不仅有文字,还有表格.一看有100多页,要是一页一页的复制,要干到什么年月啊. 经 ...
- python保存表格_python怎么把数据保存为excel
在python中把数据保存为excel的方法:首先下载xlwt:然后使用[win+R]快捷键打开cmd,切换目录到下载的文件地址并输入[python setup.py install]:再调用xlwt ...
- python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解
前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...
最新文章
- Java集合学习_Java集合学习(适合新手)
- 递归查询mysql数据库设计
- git cherry-pick简介
- 《Selenium自动化测试指南》—第1章1.1节自动化测试基础
- Response.ContentType所有类型例举
- 网页php脚本是什么意思,php脚本是什么意思
- linux安装grpc占用空间大,grpc linux安装-Go语言中文社区
- oracle 递归计算,SQL(Oracle)中的递归计算
- 利用脚本启动java程序
- python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址
- java版mc植物生长条件_植物生长三大必要条件
- 利用sklearn对红酒数据集分类
- Rider 使用Emmylua 代码提示
- 使用一个运放滤三次谐波 二阶有源带通滤波器的电路设计及波形效果
- 前端cookie 放到请求头_ajax请求头cookie问题
- 【PTA L1-028】判断素数 开方判断质数
- 运营者想针对公众号吸粉做一些运营活动,怎么做?
- 近几十年基础科学的停滞影响研究
- 阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析(含phil补充)
- 通过文献计量学助您发表高影响因子论文—基于Citespace和vosviewer文献计量学可视化SCI论文高效写作方法
热门文章
- 【redis】redis 各种数据类型应用和实现方式
- 【ElasticSearch】Es 源码之 GatewayMetaState 源码解读
- 【clickhouse】ClickHouse中的低基数(LowCardinality)类型
- 【Docker】Docker安装telnet
- 语法分析—自上而下分析
- NullPointerException : HiveAuthorizerImpl.checkPrivileges(HiveAuthorizerImpl.java:85)
- apache、node.js、nginx、tomcat的关系
- 多线程中的事务回滚,你真的用对了吗?
- 新年发财专属红包封面,高端大气上档次!
- jsp九大内置对象和四种属性范围介绍