zoukankan      html  css  js  c++  java
  • 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()
    ' 
     xa0xa0my  
     xa0 name 
     is xa0 JAY 
    '
    不过get_text()在其他很多场合很实用,它可以获取标签下的所有子孙标签内的文本内容
    同时可以指定参数
    >>> soup.get_text('|')  #所有tag文本内容的分隔符
    ' 
     xa0xa0my | 
     xa0 name |
     is xa0 JAY |
    '
    
    >>> soup.get_text('|', strip=True)   #去掉文本内容前后的空白
    'my|name|is xa0 JAY'
    或者使用soup.stripped_strings生成器,获取文本内容手动处理
    (3)可以使用.contents
    >>> content_soup = soup.div.contents
    >>> content_soup
    [' 
     xa0xa0my ', <br/>, ' 
     xa0 name ', <br/>, '
     is xa0 JAY ', <br/>, '
    ']
    >>> content_soup = [str(i) for i in content_soup]   #列表中的所有值改换为字符串类型
    >>> content_text = ''.join(content_soup)     #合并列表到一个字符串中
    >>> content_text
    ' 
     xa0xa0my <br/> 
     xa0 name <br/>
     is xa0 JAY <br/>
    '
    >>> print(content_text)
     
       my <br/> 
       name <br/>
     is   JAY <br/>
    至此,就可以直接将变量放到web页面中
  • 相关阅读:
    力学,结构动力NewMark法软组织模拟
    力学,非线性形变
    力学,线性形变
    波动方程水面模拟(简版)
    FFT海面(简版)
    测地极坐标参数化纹理贴图
    参数化离散指数映射纹理贴图
    Gridview中各个事件的操作以及FindControl
    CSS样式
    博客声明(博客大多均非原创文章,只用于记录)
  • 原文地址:https://www.cnblogs.com/stuqx/p/7291940.html
Copyright © 2011-2022 走看看