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. 封装函数(累计和、K型、金字塔)

    // 假设有个函数,只要传参数进去,就能统计累加的结果 function test($n){ if($n==1){ return 1; } return $n+test($n-1);}echo tes ...

  2. JNI创建共享内存导致JVM terminated的问题解决(segfault,shared memory,内存越界,内存泄漏,共享内存)

    此问题研究了将近一个月,最终发现由于JNI不支持C中创建共享内存而导致虚拟机无法识别这块共享内存,造成内存冲突,最终虚拟机崩溃. 注意:JNI的C部分所使用的内存也是由JVM创建并管理的,所以C创建了 ...

  3. sqlserver exists 与 in 的区别

    使用 EXISTS 方式 select * from A  a where EXISTS(select b.mainInfoId from B b  where b.mainInfoId=a.main ...

  4. webpack 3.1 升级webpack 4.0

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

  5. C#用户控件实战01_CSS布局

    很多应用系统的主页布局,一般采用如下案例所示布局较多,如下图的CSS布局框架,上.中.下,接下来我们演示,在C#中实现如下的业务架构布局. 代码范例: 在<body></body&g ...

  6. linux 基础指令

    df -h 查看磁盘空间 root@ubuntu:/etc# df -h Filesystem Size Used Avail Use% Mounted on udev 970M 0 970M 0% ...

  7. Python初识对象

    一 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, ...

  8. JS权威指南读书笔记(二)

    第四章 表达式和运算符 1 new调用构造函数的过程     a 创建一个新的空对象     b 设置空对象的_proto_指向构造函数原型prototype     c 将这个新对象当做this的值 ...

  9. nginx 作为静态资源web服务

    Nginx作为静态资源web服务 静态资源web服务-CDN场景 Nginx资源存储中心会把静态资源分发给“北京Nginx”,“湖南Nginx”,“山东Nginx”. 然后北京User发送静态资源请求 ...

  10. JAVA笔记整理(一),JAVA介绍

    JAVA语言的版本: J2SE(Java2 Platform Standard Edition,java平台标准版),后更名为:JAVA SE J2EE(Java 2 Platform,Enterpr ...