• 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页面中
  • 相关阅读:
    Did not find handler method for springMVC资源文件扫描不到---关于spring的那些坑
    mysql中OPTIMIZE TABLE的作用
    Linux环境下apache性能测试工具ab使用详解
    sqlite数据库 adb 从配置到查询表中数据全过程-----献给初学的自己
    c3p0参数解释
    linux下如何启动/停止/重启mysql:
    [MySQL] 变量(参数)的查看和设置
    mysql运行参数详解
    单例模式 理解,简单通透
    this的一些场景
  • 原文地址:https://www.cnblogs.com/stuqx/p/7291940.html
Copyright © 2020-2023  润新知