python3 调用 beautifulSoup 进行简单的网页处理

  1. from bs4 import BeautifulSoup
  2. file = open('index.html','r',encoding='utf-16-le') #此处有坑!!!
  3. soup = BeautifulSoup(file,'lxml')
  4. print (soup) # 打印读出的内容
  5. print ('\n ------------- \n')
  6. print (soup.get_text()) # 取所有标签中的文字
  7. print ('\n ------------- \n')
  8. print (soup.prettify()) # 格式化输出
  1. # 以标签的形式输出
  2. print (soup.title)
  3. print ('\n ------------- \n')
  4. print (soup.body)
  5. print ('\n ------------- \n')
  6. print (soup.body.div)
  1. import re
  2. print (soup.find_all('br')) # 仅仅用来搜索标签
  3. print ('\n ------------- \n')
  4. print (soup.find_all(re.compile('^b')))#可以使用正则表达式 以b开头的标签
  5. print ('\n ------------- \n')
  6. print (soup.find_all(id='wiz_custom_css'))
  7. print ('\n ------------- \n')
  8. for strr in soup.strings: # 取所有下一级标签中的字符串 .stripped_strings可以去空白
  9. print (strr)
  10. print ('\n ------------- \n')
  1. # 去除body中的标签,将结果保存于文件 待改进
  2. # kill all script and style elements
  3. for script in soup(["script", "style"]):
  4. script.extract() # rip current tap
  5. title_text = soup.title.get_text()
  6. str_text = ''
  7. for strr in soup.body.strings: # 取所有下一级标签中的字符串 .stripped_strings可以去空白
  8. str_text = str_text + strr + '\n'
  9. print (str_text)
  10. if title_text == '':
  11. md_file = open('index.md','w')
  12. md_file.write(str_text)
  13. else:
  14. md_file = open(title_text+'.md','w')
  15. md_file.write(str_text)
  1. # 网上搜到的方式,<br/>标签没有转为换行,后面有另一种方式
  2. #print soup
  3. # kill all script and style elements
  4. for script in soup(["script", "style"]):
  5. script.extract() # rip current tap
  6. # get text
  7. text = soup.get_text()
  8. #print text + '____________'
  9. # break into lines and remove leading and trailing space on each
  10. # splitlines 按\r \r\n \n三种标签分解为行
  11. # strip()移除首尾字符,参数默认为空格
  12. lines = (line.strip() for line in text.splitlines())
  13. # break multi-headlines into a line each
  14. chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
  15. # drop blank lines
  16. text = '\n'.join(chunk for chunk in chunks if chunk) # 这个循环…………
  17. #wfile = open('aa.md','w')
  18. #wfile.write(text)
  19. print(text)

python3 调用 beautifulSoup 进行简单的网页处理的更多相关文章

  1. 问题:python3 使用beautifulSoup时,出错UnicodeDecodeError: 'gbk' codec …….

    想将html文件转为纯文本,用Python3调用beautifulSoup 超简单的代码一直出错,用于打开本地文件: from bs4 import BeautifulSoup file = open ...

  2. Python3中BeautifulSoup的使用方法

    BeautifulSoup的使用 我们学习了正则表达式的相关用法,但是一旦正则写的有问题,可能得到的就不是我们想要的结果了,而且对于一个网页来说,都有一定的特殊的结构和层级关系,而且很多标签都有id或 ...

  3. 爬虫基础库之beautifulsoup的简单使用

    beautifulsoup的简单使用 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: ''' Beautiful Soup提供一些简单的.p ...

  4. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  5. Python3调用Hadoop的API

    前言: 上一篇文章 我学习使用pandas进行简单的数据分析,但是各位...... Pandas处理.分析不了TB级别数据的大数据,于是再看看Hadoop. 另附上人心不足蛇吞象 对故事一的感悟:   ...

  6. Python【BeautifulSoup解析和提取网页数据】

    [解析数据] 使用浏览器上网,浏览器会把服务器返回来的HTML源代码翻译为我们能看懂的样子 在爬虫中,也要使用能读懂html的工具,才能提取到想要的数据 [提取数据]是指把我们需要的数据从众多数据中挑 ...

  7. 利用python3 调用zabbix接口完成批量加聚合图形(screens)

    在上一篇博客中,我们完成的利用python3 调用zabbix接口批量增加主机,增加主机的item,增加主机的图形! 接下来我们完成批量增加主机的screen 首先我们要增加screen需要哪些参数呢 ...

  8. Python3调用C程序(超详解)

    Python3调用C程序(超详解) Python为什么要调用C? 1.要提高代码的运算速度,C比Python快50倍以上 2.对于C语言里很多传统类库,不想用Python重写,想对从内存到文件接口这样 ...

  9. Rsession让Java调用R更简单

    Rsession让Java调用R更简单 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒. ...

随机推荐

  1. 禁止服务向 eureka 上注册配置文件

    ### 禁止向注册中心注册服务eureka.client.register-with-eureka=false

  2. webpack 3.1 升级webpack 4.0

    webpack 3.1 升级webpack 4.0 为了提升打包速度以及跟上主流技术步伐,前段时间把项目的webpack 升级到4.0版本以上 webpack 官网:https://webpack.j ...

  3. Python——初识网络爬虫(网页爬取)

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫 ...

  4. iOS - Scenekit3D引擎初探之 - 导出DAE文件(3Dmax为例)

    DAE文件格式是3D交互文件格式,一般用于多个图形程序之间交换数字数据,Autodesk专有并在COLLADA(COLLAborative Design Activity)基础上改进创建的XML框架的 ...

  5. hibernate saveorupdate方法只有更新有效果,保存没有效果

    转自:https://blog.csdn.net/KAIXINLUOYE/article/details/72821014 单主键生成策略由native改成assigned后,问题解决.

  6. java引用传递和值传递

    关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习 ...

  7. flask打包安装文件

    如果在一台新的电脑需要运行项目的时候,这时候就需要将项目项目所用到的模块都导出来 依赖文件生成pip freeze > requirements.txt 执行该命令会在项目根目录下生成一个 re ...

  8. 流程控制 while for

    循环执行 计算机最擅长的功能之一就是按照规定的条件,重复执行某些操作,这是程序设计中最能发挥计算机特长的程序结构. 1.while语句 while(表达式){ 各种语句.... } 当表达式的值为tr ...

  9. 【ogg三】日常运维篇:清理归档日志,ogg进程注册服务,定期备份数据库

    清理归档日志 ogg使用需要开启归档日志,归档日志会随着时间的推移逐渐增多,占满空间,导致应用无法正常运行. 如果归档日志满了会报错 ORA-00257:archiver error解决办法 检查fl ...

  10. Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)

    Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...