python爬虫爬取页面源码在本页面展示

python爬虫在爬取网页内容时,需要将内容连同内容格式一同爬取过来,然后在自己的web页面中显示,自己的web页面为django框架
首先定义一个变量html,变量值为一段HTML代码
>>> print(html)
<div id=1> 
 &nbsp;&nbsp;my <br> 
 &nbsp; name <br>
 is &nbsp; JAY <br> 
 </div>
,我们现在要取div里面的内容,在自己的web页面中显示,空格和换行符等都以HTML代码的形式抓取。最终想要的数据为
&nbsp;&nbsp;my <br>
&nbsp; name <br>
is &nbsp; JAY <br>
 
(1)首先soup.string是不行的,因为div下面不止一个子标签
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html, 'html.parser')
>>> soup.string
>>> 
可以看到返回值为空
(2)使用get_text()也是不行的,因为get_text()获取的字符串都是转义后的,我们要的是原生的HTML代码
>>> soup.get_text()
' \n \xa0\xa0my  \n \xa0 name \n is \xa0 JAY \n'
不过get_text()在其他很多场合很实用,它可以获取标签下的所有子孙标签内的文本内容
同时可以指定参数
>>> soup.get_text('|')  #所有tag文本内容的分隔符
' \n \xa0\xa0my | \n \xa0 name |\n is \xa0 JAY |\n'

>>> soup.get_text('|', strip=True)   #去掉文本内容前后的空白
'my|name|is \xa0 JAY'
或者使用soup.stripped_strings生成器,获取文本内容手动处理
(3)可以使用.contents
>>> content_soup = soup.div.contents
>>> content_soup
[' \n \xa0\xa0my ', <br/>, ' \n \xa0 name ', <br/>, '\n is \xa0 JAY ', <br/>, '\n']
>>> content_soup = [str(i) for i in content_soup]   #列表中的所有值改换为字符串类型
>>> content_text = ''.join(content_soup)     #合并列表到一个字符串中
>>> content_text
' \n \xa0\xa0my <br/> \n \xa0 name <br/>\n is \xa0 JAY <br/>\n'
>>> print(content_text)
 
   my <br/> 
   name <br/>
 is   JAY <br/>
至此,就可以直接将变量放到web页面中

转载于:https://www.cnblogs.com/stuqx/p/7291940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值