python读取html中body_小猿圈Python入门之批量获取html内body内容的方法

对于人工智能你了解有多少?你知道Python的使用吗?这个对于大部分初学者来说都是很难的,小猿圈Python讲师会每天为大家选择分享一个知识点,希望对你学习Python有所帮助,今天分享的就是批量获取html内body内容的方法。

现在有一批完整的关于介绍城市美食、景点等的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和人工智能方面内容的小伙伴,请关注小猿圈官网,IT职业在线学习教育平台为您提供Python开发环境搭建视频等等,希望在你自学python中帮助你指导方向,少走弯路。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值