python text 获取内容_Python prettify格式化BeautifulSoup抓取的HTML代码|html代码格式化输出,get_text()获取文本内容...

HTML格式化:

Python的BeautifulSoup:import BeautifulSoup

soup = BeautifulSoup.BeautifulSoup(html)

利用这个包把html里script,style给清理了:[script.extract() for script in soup.findAll('script')]

[style.extract() for style in soup.findAll('style')]

清理完成后,这个包有一个prettify()函数,把代码格式给搞的标准一些:soup.prettify()

用正则表达式,把所有的HTML标签全部清理了:reg1 = re.compile("<[^>]*>")

content = reg1.sub('',soup.prettify())

剩下的都是纯文本的文件了,通常是一行行的,把空白行给排除了

BeautifulSoup不仅仅只是可以查找,定位和修改文档内容,同样也可以用一个好的 格式进行输出显示。BeautifulSoup可以处理不同类型的输出:格式化的输出

非格式化的输出

格式化输出

BeautifulSoup中有内置的方法prettfy()来实现格式化输出。比如:

5dfcd4fbb9341.png

soup.prettify()自动就帮你把格式处理好了

prettify()可以用于BeautifulSoup对象也可以用于任何标签对象。

非格式化输出

可以使用str()和unicode()来进行非格式化输出。

如果我们对BeautifulSoup对象和标签对象使用str()方法,那么得到的就是一般的字符串输出样式。

我们也可以使用前篇讲到的encode()方法来指定编码格式的输出。

对BeautifulSoup对象或标签对象使用decode()方法来得到Unicode字符串。

使用get_text()

从网页中得到文本是常见的工作,BeautifulSoup提供了get_text()方法来达到目的。

如果我们只想得到BeautifulSoup对象的文本或标签对象的文本内容,我们可以使用get_text()方法。比如:

5dfcd65068949.png

get_text()方法返回BeautifulSoup对象或标签对象中的文本内容,其为一个Unicode字符串。但是get_text()有个问题是它同样也会返回javascript代码。去掉javascript代码的方法如下:[x.extract() forx insoup_packtpage.find_all('script')]

这样就会用处掉所有脚本元素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值