学习网络爬虫当然是不可能一点网都没有的,我们前期需要网络打开自己需要的网页,获取网页上的源码保存在本地文件,就可以不用网络了,我家里的网络很差,我就是这样操作的,例如上节爬取智联招聘网步骤,下次访问的时候就不需要网络了,此次我就来将一下怎么用BeautifulSoup爬取本地html文件,并以贵州财经大学2017级的录取分数线表格信息为例讲解:

操作思路

1、找个有网的获取html源码保存为本地html文件


<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>贵州财经大学2017级专业录取分数线</title>
</head>
<body><table><thead><tr><th class="w220">专业名称</th><th>最高分</th><th>平均分</th><th>最低分</th><th>最低位次</th><th>录取批次</th></tr></thead><tbody><tr><td>经济学类</td><td>520</td><td>498</td><td>476</td><td>-</td><td>本科一批</td></tr><tr><td>公共管理类</td><td>495</td><td>483</td><td>471</td><td>-</td><td>本科一批</td></tr><tr><td>新闻传播学类</td><td>500</td><td>486</td><td>471</td><td>-</td><td>本科一批</td></tr><tr><td>财务管理类</td><td>507</td><td>486</td><td>464</td><td>-</td><td>本科二批</td></tr><tr><td>金融学类</td><td>497</td><td>478</td><td>460</td><td>-</td><td>本科二批</td></tr><tr><td>工商管理类</td><td>476</td><td>466</td><td>455</td><td>-</td><td>本科二批</td></tr><tr><td>管理科学与工程类</td><td>472</td><td>462</td><td>453</td><td>-</td><td>本科二批</td></tr><tr><td>统计学类</td><td>476</td><td>463</td><td>450</td><td>-</td><td>本科二批</td></tr><tr><td>计算机类</td><td>508</td><td>479</td><td>450</td><td>-</td><td>本科二批</td></tr><tr><td>金融学类(中外合作办学)</td><td>450</td><td>406</td><td>362</td><td>-</td><td>本科二批</td></tr><tr><td>工商管理类(中外合作办学市场营销)</td><td>379</td><td>370</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>会计学(国际本科学术互认课程)</td><td>455</td><td>408</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>市场营销(国际本科学术互认课程)</td><td>456</td><td>408</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>电子商务类(中外合作办学)</td><td>438</td><td>400</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>工程管理(国际本科学术互认课程)</td><td>406</td><td>384</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>工商管理类(中外合作办学会计学)</td><td>428</td><td>394</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>工商管理类(中外合作办学财务管理)</td><td>419</td><td>390</td><td>361</td><td>-</td><td>本科二批</td></tr><tr><td>财务会计类(中外合作办学)</td><td>362</td><td>352</td><td>342</td><td>-</td><td>专科批</td></tr><tr><td>金融类(中外合作办学)</td><td>360</td><td>346</td><td>333</td><td>-</td><td>专科批</td></tr><tr><td>市场营销类(中外合作办学)</td><td>367</td><td>345</td><td>323</td><td>-</td><td>专科批</td></tr></tbody></table>
</body>
</html>

2、读取本地html并解析

url = 'file:///G:/2017_GUFE_Score.html'#本地网页路径
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html,"html.parser")

3、定位节点获取信息

tables = soup.find_all('table')#定位table节点
tab = tables[0]
for tr in tab.tbody.find_all('tr'):#找到tbody下的所有tr标签,迭代循环zymc = tr.find_all('td')[0].get_text()#第一个<td></td>内的内容zgf = tr.find_all('td')[1].get_text()#第二个<td></td>内的内容pjf = tr.find_all('td')[2].get_text()zdf = tr.find_all('td')[3].get_text()zdwc = tr.find_all('td')[4].get_text()lqpc = tr.find_all('td')[5].get_text()print (zymc,zgf,pjf,zdf,zdwc,lqpc)print (" ")#换行

运行结果:

4、把信息存入表格

all_page = []#(获取信息主函数)page = [zymc,zgf,pjf,zdf,zdwc,lqpc]all_page.append(page)book = xlwt.Workbook(encoding = 'utf-8')#创建工作簿
sheet = book.add_sheet('2017级理科',cell_overwrite_ok=True)#创建表名,cell_overwrite_ok=True用于确认同一个cell单元是否可以重设值
head = ['专业名称','最高分','平均分','最低分','最低位次','录取批次']#定义表头,即Excel中第一行标题
for h in range(len(head)):sheet.write(0,h,head[h])#写入表头j = 1#第一行开始
for list in all_page:k = 0for date in list:sheet.write(j,k,date)#迭代列,并写入数据,重新设置,需要cell_overwrite_ok=Truek = k+1j = j+1
book.save('G:贵州财经大学2017级理科专业录取分数情况.xls')

运行结果如图:

所有python源码如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import urllib.request
from bs4 import BeautifulSoup
import xlwturl = 'file:///G:/2017_GUFE_Score.html'#本地网页路径
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html,"html.parser")
all_page = []#爬虫函数
tables = soup.find_all('table')#定位table节点
tab = tables[0]
for tr in tab.tbody.find_all('tr'):#找到tbody下的所有tr标签,迭代循环zymc = tr.find_all('td')[0].get_text()zgf = tr.find_all('td')[1].get_text()pjf = tr.find_all('td')[2].get_text()zdf = tr.find_all('td')[3].get_text()zdwc = tr.find_all('td')[4].get_text()lqpc = tr.find_all('td')[5].get_text()print (zymc,zgf,pjf,zdf,zdwc,lqpc)print (" ")#换行page = [zymc,zgf,pjf,zdf,zdwc,lqpc]all_page.append(page)book = xlwt.Workbook(encoding = 'utf-8')#创建工作簿
sheet = book.add_sheet('2017级理科',cell_overwrite_ok=True)#创建表名,cell_overwrite_ok=True用于确认同一个cell单元是否可以重设值
head = ['专业名称','最高分','平均分','最低分','最低位次','录取批次']#定义表头,即Excel中第一行标题
for h in range(len(head)):sheet.write(0,h,head[h])#写入表头j = 1#第一行开始
for list in all_page:k = 0for date in list:sheet.write(j,k,date)#迭代列,并写入数据,重新设置,需要cell_overwrite_ok=Truek = k+1j = j+1
book.save('G:贵州财经大学2017级理科专业录取分数情况.xls')

没有网络怎么学网络爬虫之BeautifulSoup爬取html表格存入Excel表格相关推荐

  1. Python网络爬虫使用BeautifulSoup爬取网页内容并存入数据库案例

    使用BeautifulSoup爬取网页内容并存入数据库案例 学习了Python网络爬虫,完成里一个比较完整的爬虫案例与大家分享 爬取地址:http://www.tipdm.com/cpzx/index ...

  2. python爬取天眼查存入excel表格_爬虫案例1——爬取新乡一中官网2018届高考录取名单...

    有一种非常常见并且相对简单的网络爬虫,工作流程大概是这样的: 访问目标网页 提取目标网页内表格信息 写入excel文件并保存 初次实践,我决定尝试写一个这样的爬虫.经过一番构思,我准备把爬取新乡一中官 ...

  3. Python爬虫项目:爬取JSON数据存储Excel表格与存储图片

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...

  4. python爬虫-使用BeautifulSoup爬取新浪新闻标题

    ** python爬虫-使用BeautifulSoup爬取新浪新闻标题 ** 最近在学习爬虫的技巧,首先学习的是较为简单的BeautifulSoup,应用于新浪新闻上. import requests ...

  5. python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例

    第一次写一个算是比较完整的爬虫,自我感觉极差啊,代码low,效率差,也没有保存到本地文件或者数据库,强行使用了一波多线程导致数据顺序发生了变化... 贴在这里,引以为戒吧. # -*- coding: ...

  6. python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

    目的:爬取豆瓣[红海行动]电影的首页短评 步骤: 1.使用BeautifulSoup解析网页 soup = BeautifulSoup(r, 'lxml') // lxml 库解析速度快,也能解析复杂 ...

  7. BeautifulSoup爬取页面URL三步走

    爬虫利器BeautifulSoup爬取一个页面的所有URL,可以简单分为三个步骤: 使用requests获取页面内容 使用BeautifulSoup进行页面内容解析 提取并整理所需要的URL 代码实例 ...

  8. 使用BeautifulSoup爬取想要的标签(《python网络爬虫权威指南》笔记)

    使用BeautifulSoup爬取想要的标签 精确爬取标签 BeautifulSoup中的find()和find_all()方法 BeautifulSoup中的对象 兄弟.子.父.后代标签的处理 抓取 ...

  9. Python 网络爬虫实战:爬取《去哪儿》网数千篇旅游攻略数据,再也不愁旅游去哪儿玩了

    好久不见! 今天我们来爬取 去哪儿网站 的 旅游攻略 数据. 0x00  找一个合理的作案动机 作为一名立志成为技术宅的普通肥宅,每次一到周末就会面临一个人生难题:这周末怎么过? 本来是没有这些问题的 ...

最新文章

  1. 使用OpenCV进行对象检测
  2. 日访问量百亿级的应用如何做缓存架构设计
  3. 【PAT乙级】1036 跟奥巴马一起编程 (15 分)
  4. 快速排序法(思想及代码实现)
  5. MyBatis 源码解读-pluginElement()
  6. MYSQL增量备份和全量备份脚本
  7. 多选框实现全选_Angular1.x-checkbox-全选amp;单选amp;多选
  8. Linux 用户及用户组的基本管理
  9. 树(5)-----判断两颗树一样或者一棵树是否是另外一颗的子树
  10. Android 系统(255)---dump解码所得图片方法
  11. Android App罕见错误和优化方案
  12. word如何设置上标形式_如何在word里设置删除线、添加着重号、上标和下标?戳这里...
  13. oracle中入库判断空串,不同数据库和SpringDataJPA对字段值null,''空值的判断
  14. Online Classification
  15. calib matlab,toolbox_calib 这是matlab版本的摄像机标定工具箱,由斯坦福大学开发,具有很高的 精度,很好 238万源代码下载- www.pudn.com...
  16. html制作动态3d图片,如何制作3D动态图片?
  17. [渝粤教育] 中国地质大学 地球科学概论 复习题
  18. zotero自动安装word插件失败
  19. linux进程监控及管理
  20. 方舟手游修改服务器难度,方舟手游中途可以修改难度吗

热门文章

  1. 滑动窗口滤波 c语言,关于中值滤波算法,以及C语言实现
  2. 穿的古装,剧情是现代
  3. ajax java 图片加载_如何用Ajax加载服务器的图片
  4. 自学网络安全究竟该从何学起?
  5. Arm推出新一代高性能CPU内核Cortex-X4以及GPU Immortalis-720 GPU
  6. python分配buffer_如何使用Python中的buffer
  7. C++之函数参数默认值
  8. 条件覆盖,路径覆盖,语句覆盖,分支覆盖解释
  9. 现在APP开发都用什么技术?
  10. P1428小鱼比可爱——C++实现