• Python Beautiful Soup学习之HTML标签补全功能


    Beautiful Soup是一个非常流行的Python模块。该模块可以解析网页,并提供定位内容的便捷接口。

    使用下面两个命令安装:

    pip install beautifulsoup4 或者 sudo apt-get install Python-bs4

    如果想安装最新的版本,请直接下载安装包来手动安装,也是十分方便的方法。

    在这里我安装的是 Beautiful Soup 4.5.1

    下载完成之后把解压包放到site-package目录下,cd到解压包中,运行下面的命令即可完成安装:

    sudo python setup.py install

    然后需要安装lxml:

    sudo apt-get install Python-lxml

    使用Beautiful Soup的第一步是将已下载的HTML内容解析为soup文档

    由于大多数网页都不具备良好的HTML格式,因此Beautiful Soup需要对其实际格式进行确定。

    例如,在下面这个简单网页的列表中,存在属性值两侧引号缺失和标签未闭合的问题。

    markup ="<b><!--Hey, buddy. Want to buy a used parser?--></b><p>fdsf"

    我们可以看到P标签未闭合。下面让我们看一下Beautiful Soup是如何处理的。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

     from bs4 import BeautifulSoup

    markup ="<b><!--This will be used in the crawler--></b><p>It's wonderful"
    tags = []
    #soup = BeautifulSoup(markup,'html.parser')

    #环境问题,可能报错,暂时还没搞懂html.parser和lxml的区别,后续跟进,如果报错,就用下一行的代码
    soup = BeautifulSoup(markup,'lxml')
    fixed_html = soup.prettify()
    print fixed_html

    结果如下:

    我们可以看到不仅<p>标签补全完整,而且加入了<html>和<body>标签,进行格式化的输出。

    下面我们就可以用findAll()方法查找我们想要的标签或者内容了。

    我们先打印看一下findAll()得到的标签都是什么?

    tags = []

    tag = soup.findAll()
    for sub in tag:
    tags.append(sub.name)
    print tags

    执行结果如下:

     

    我们得到了我们所需要的标签,然后我们在findAll()中加入想查找的标签。

    例如:

    sub = soup.findAll('p')

    得到结果:

    后续将会把该内容应用到爬虫中,对爬虫得到的网页进行解析。

     
  • 相关阅读:
    121孤荷凌寒自学第0207天_区块链第121天NFT018
    120孤荷凌寒自学第0206天_区块链第120天NFT017
    IOS雕虫小技
    Github-素材篇
    黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate
    黑马程序员_ Objective-c 之block、protocol学习笔记
    黑马程序员_ Objective-c 之Foundation笔记(二)
    黑马程序员_ Objective-c 之Foundation笔记(一)
    黑马程序员_ Objective-c 内存管理笔记
    黑马程序员_ Objective-c 面向对象笔记详解
  • 原文地址:https://www.cnblogs.com/forward-wang/p/5978485.html
Copyright © 2020-2023  润新知