python批量获取html内body内容的实例


Posted in Python onJanuary 02, 2019

现在有一批完整的关于介绍城市美食、景点等的html页面,需要将里面body的内容提取出来

方法:利用python插件beautifulSoup获取htmlbody标签的内容,并批量处理。

# -*- coding:utf8 -*-
 
from bs4 import BeautifulSoup
import os
import os.path
import sys
reload(sys) 
sys.setdefaultencoding('utf8') 
 
 
def printPath(level,path):
	global allFileNum
	#所有文件夹,第一个字段是此目录的级别
	dirList = []
 
	#所有文件
	fileList = []
 
	#返回一个列表,其中包含在目录条目的名称
	files = os.listdir(path)
 
	#先添加目录级别
	dirList.append(str(level))
 
	for f in files:
		if(os.path.isdir(path+'/'+f)):
			#排除隐藏文件夹,因为隐藏文件夹过多
			if(f[0] == '.'):
				pass
			else:
				#添加隐藏文件夹
				dirList.append(f)
		if(os.path.isfile(path+'/'+f)):
			#添加文件
			fileList.append(f)
	return (dirList,fileList)
 
#将文件html文件抓取并写入指定txt文件
def getAndInsert(rootdir,savepath,path):
	global file_num
	f_list = os.listdir(rootdir+'/'+path)
	for i in f_list:
		temp = os.path.splitext(i)[0]
		for num in range(1,11):
			if(i==str(num)+'.html'):
				#print rootdir+'/'+path+'/'+i
				objFile = open(rootdir+'/'+path+'/'+i)
				soup = BeautifulSoup(objFile)
				arr = []
				for child in soup.body:
					arr.append(child)
				if os.path.exists(savepath+'/'+path):
					pass
				else:
					os.makedirs(savepath+'/'+path)
				f = open(savepath+'/'+path+'/'+temp+'.txt','w')
				for k,v in enumerate(arr):
					if k!=1:
						f.write(str(v))
				f.close()
				print path+'/'+i+' is running'
	file_num = file_num + 1
			
 
rootdir = '../zips2'
dirList,fileList = printPath(1,rootdir)
 
savepath = "../testC"
file_num = 0
 
for fn in dirList:
	if(fn == '1'):
		pass
	else:
		getAndInsert(rootdir,savepath,fn)
		print fn+' is ending'
print '一共完成'+str(file_num)+'个城市的提取'

以上这篇python批量获取html内body内容的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python从MP3文件获取id3的方法
Jun 15 Python
浅谈python字典多键值及重复键值的使用
Nov 04 Python
Python max内置函数详细介绍
Nov 17 Python
使用Python对MySQL数据操作
Apr 06 Python
Python的log日志功能及设置方法
Jul 11 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
Python正则表达式急速入门(小结)
Dec 16 Python
python实现一个猜拳游戏
Apr 05 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
用python实现名片管理系统
Jun 18 Python
Python结合百度语音识别实现实时翻译软件的实现
Jan 18 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 #Python
python生成器与迭代器详解
Jan 01 #Python
使用python3实现操作串口详解
Jan 01 #Python
python实现生成字符串大小写字母和数字的各种组合
Jan 01 #Python
python 内置模块详解
Jan 01 #Python
python配置grpc环境
Jan 01 #Python
python制作mysql数据迁移脚本
Jan 01 #Python
You might like
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
python使用PyCharm进行远程开发和调试
2017/11/02 Python
python图像常规操作
2017/11/11 Python
用python实现的线程池实例代码
2018/01/06 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
python学生管理系统
2019/01/30 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
缓刑人员的思想汇报
2014/01/11 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2015政治思想表现评语
2015/03/25 职场文书