bs4爬取的时候有两个标签相同_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相关推荐
- beautifulsoup爬取网页中的表格_PYTHON爬取数据储存到excel
PYTHON爬取数据储存到excel 大家周末好呀,我是滑稽君.前两天上网课时朋友发来消息说需要爬取一些数据,然后储存到excel里.记得我公众号里发过关于爬虫的文章,所以找我帮个忙.于是滑稽君花时间 ...
- bs4爬取的时候有两个标签相同_python爬虫初体验,爬取中国最好大学网大学名次...
程序员天天只顾写生活琐事的文章可就太对不起其他的程序员们了,某大佬给我在线寄了一张刀片的图片,催更技术分享,不得不动手了.从今年刚开始学习python,美妙的语法令人陶醉,好用的第三方库令人爱不释手. ...
- 将爬取的数据保存到Excel表格
第一步.导入模块 import xlwt # 导入写入excel需要的包 第二步.定义函数,将爬取好的数据保存到excel文件中,下面以保存python的关键词为例,介绍详细流程. def write ...
- Python--爬虫爬取的数据保存到excel
Python–爬虫爬取的数据保存到excel 文章目录 Python--爬虫爬取的数据保存到excel 一.excel表格存储 二.python3.9没有自带的xlwt模块和xlrd,需要自行下载 三 ...
- selenium爬取网页表格数据并存到Excel
简单介绍 1.登录到要爬取信息的页面 登录系统(填写账号密码)→进入表格数据所在的网页页面→定位下拉选框并进行选择→定位时间框选择日期→在选择日期时弹出的是另一个网页窗口进行选择,所以要将切换环境到日 ...
- python爬取拉勾网给定关键词职位信息存入数据库_Python 爬取拉勾网python职位信息...
今天的任务是爬取拉勾网的职位信息. 首先,我们进入拉勾网,然后在职位搜索栏搜索Python 的同时,打开控制面板F12,来查看网页构成. 在XHR里,可以清楚的看见Ajax请求,所以需要使用sessi ...
- bs4爬取的时候有两个标签相同_10分钟用Python爬取最近很火的复联4影评
<复仇者联盟4:终局之战>已经上映快三个星期了,全球票房破24亿美元,国内票房破40亿人民币. 虽然现在热度逐渐下降,但是我们还是恬不知耻地来蹭一蹭热度.上映伊始<复联4>的豆 ...
- bs4爬取的时候有两个标签相同_4.4 爬虫中的bs4数据爬取步骤
>>.第三方包先安装 beatifulsoup抓取工具 位置:第三方开发包,如果使用,则需要单独下载的工具包 安装:后台命令:9版本以下----pip install bs4 或者 pip ...
- bs4爬取的时候有两个标签相同_利用Python爬取OPGG上英雄联盟英雄胜率及选取率信息!...
一.分析网站内容 本次爬取网站为opgg,网址为:" http://www.op.gg/champion/statistics " 由网站界面可以看出,右侧有英雄的详细信息,以Ga ...
最新文章
- 【Tools】Markdown数学符号公式(史上最全公式表)
- 算法 - 最好、最坏、平均复杂度
- qq邮箱电脑版登录入口_青骄第二课堂学生平台登录入口,青骄第二课堂登录入口(官网手机版入口:https://m.2class.com/)...
- 在2011年QCon北京大会上的主题分享内容——Keynote
- 使用 Pandas GUI 进行数据探索
- Spark内存管理(1)—— 静态内存管理
- 寒假CF1 C-龟龟
- 51单片机外围模块——DS1302时钟模块
- suse linux 忘记root密码,SUSE linux 忘记root密码
- java英文姓名随机生成_java随机生成中国人姓名
- 命令行 降低IE版本 IE11降到IE8
- 关于Jqueryweui 的select联动用法
- 小米9下拉状态栏失效
- 使用GLAD加载OpenGL的库
- 测试开发面试题160道17类21339字
- 计算机ip如何设置,win7电脑ip地址怎么设置_win7电脑ip怎么设置-win7之家
- mysql不小心删除root恢复
- 从零开始Tableau | 10.表计算-基础
- JavaScript数组扁平化
- python图例重复显示_python matplotlib图例重复
热门文章
- SAP Spartacus Delivery Mode Component单元测试的Mock设计图
- SAP Spartacus PagelayoutComponent里的template
- SAP Spartacus里的concurrently依赖
- ant build.xml文件中能使用的属性介绍
- Fiori Elements - detail view layout analysis
- Cluster table import - BSP UI component source code is actually stored in cluster table
- time Interval in SAP UI5 SalesPipeline
- SAP Cloud for Customer的Opportunity搜索前台实现原理
- 如何判断Marketing Cloud里OData服务调用成功了
- 安装python3.7.0的步骤_CentOS7下简单安装python3.7.0步骤