使用Beautifulsoup解析本地html文件
来源:互联网 发布:java并发框架有哪些 编辑:程序博客网 时间:2024/05/21 09:39
有时候网络上的资源可以通过html保存在本地,然后再解析本地html文件,提取有用的信息。基本的实现思路如下:
1. 打开html文件
比如,待解析的html文件保存在d盘。这里插一句,要读一个东西,首先得知道这东西在哪里。如果它在万维网上,那么我们需要知道URL。
URL(Uniform Resoure Locator),统一资源定位符。是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。它是一个网络路径。
本地路径,与网络路径相对应。又称物理路径,指的是某一台计算机本地的路径,以盘符开头,例如C:\、D:\temp等等。
此处,我们要想打开本地html文件,首先得告诉程序你的文件在哪里。
path = 'd:/Download/mydoc.html'
然后,使用open函数打开文件。
htmlfile = open(path, 'r', encoding='utf-8')
2. 读取html的句柄内容
这里所说的“句柄内容”就是指html文件里面的内容。为什么要这么做?
谨记,Beautifulsoup的第一个参数是一个html句柄内容,而不是html文件。所以我们要把html文件里的内容读出来,然后传递给它。
htmlhandle = htmlfile.read()
3. 使用Beautifulsoup解析
调用Beautifulsoup解析功能,解析器使用lxml。
from bs4 import Beautifulsoupsoup = Beautifulsoup(htmlhandle, 'lxml')
4. 抽取有用的字段
为了便于后期的数据分析,小量数据,数据分析师最爱用Excel。所以,此处我们利用python中pandas包的dataframe数据框架,来存储html文件中目标字段的值。
这次,尝试了使用以下这种方式,向dataframe追加新的行。
import pandas as pdcount = 0result = pd.DataFrame({},index=[0])result['author'] = ''result['title'] = ''result['source'] = ''new = resultfor item in soup.find_all('tr'): if 'AU ' in item.get_text(): author = item.get_text() new['author'] = author elif 'TI ' in item.get_text(): title = item.get_text() new['title'] = title elif 'SO ' in item.get_text(): source = item.get_text() new['source'] = source count += 1 result = result.append(new,ignore_index=True)print(count)
最后,将dataframe中的数据保存到excel中去,文件写入真是贼方便。给python打call,6666666…..
result.to_excel('d:result.xlsx')
欢迎关注微信公众号“数据分析师手记”
一起修炼数据分析师吧~~
- 使用Beautifulsoup解析本地html文件
- 使用BeautifulSoup解析html入门
- 用Python解析HTML,BeautifulSoup使用简介
- 使用BeautifulSoup解析HTML和XML
- BeautifulSoup使用的html解析器比较
- BeautifulSoup解析HTML(一)
- 【Python】 html解析BeautifulSoup
- BeautifulSoup解析xml文件的使用初步
- BeautifulSoup中各种html解析器的比较及使用
- Python爬虫之使用BeautifulSoup解析HTML文本
- python解析html之BeautifulSoup
- 用BeautifulSoup解析html表格
- Python 用BeautifulSoup 解析Html
- Python之BeautifulSoup学习之三 读取本地html文件,并将其中图片保存下来
- 用htmlparser 解析本地html文件
- 使用htmlcxx-0.85解析html(本地字段)
- 采用beautifulsoup库 解析html页面
- python : BeautifulSoup 网页HTML 解析器
- mtk平台android隐藏第三方不可访问的rom空间
- 给任务排序(uva 10305)
- 判断是否是2的指数次幂
- Spring Cloud原理分析及使用<二>
- Docker安装Confluence6.6破解
- 使用Beautifulsoup解析本地html文件
- 深入理解Java虚拟机-虚拟机类加载机制(四)
- Apache+tomcat+JK分布式集群
- 整合ssm框架
- 论文中用到的Matlab函数总结
- Cannot get property 'compileSdkVersion' on extra properties extension as it does not exist问题解决
- 一、什么是微服务
- STM32与DS1302设计时钟芯片,超详细
- MONGODB安装后配置以及添加到WINDOWS服务及其它