zoukankan      html  css  js  c++  java
  • 【转载】Python BeautifulSoup匹配字符串

    作者:鸡仔说
    链接:https://www.jianshu.com/p/ceb99aed4b2e
    來源:简书

    BeautifulSoup中可以通过name和attrs去定位名称和属性,以找到特定的html代码。更值得称赞的是,attrs支持正则表达式。

    如:

    <div class="cool">
        <h1 class="abc">design</h1>
    </div>

    搜索此行,可以这样写

    abcSoup = soup.find(name="h1", attrs={"class":"abc"})

    但如果情况变成

    <div class="cool">
        <h1 class="abc">design</h1>
        <h1 class="abc test1">design photo</h1>
        <h1 class="abc test2">design product</h1>
    </div>

    此时,想一次性找到三个h1,就需要用到正则了。

    abcSouplist = soup.find_all(name="h1", attrs={"class":re.compile(r"abc(sw+)?")})

    便可以找到:

    <h1 class="abc">design</h1>
    <h1 class="abc test1">design photo</h1>
    <h1 class="abc test2">design product</h1>

    还有一种情况,就是判断一种属性是否存在,从而找到该文件。可以通过True和Flase进行筛选。

    比如:

    <div class="cool">
        <h1 class="abc" id="test">design</h1>
        <h1 class="abc test1">design photo</h1>
        <h1 class="abc test2">design product</h1>
    </div>

    想选择所有不存在id属性的文件,可以写如下表达式筛选。

    Soup.find_all("h1",attrs={"id":Flase})

    就可以筛选出下面两行h1啦

    <h1 class="abc test1">design photo</h1>
    <h1 class="abc test2">design product</h1>
  • 相关阅读:
    拒绝服务攻击
    通过混合编程分析的方法和机器学习预测Web应用程序的漏洞
    防火墙与入侵防护系统
    恶意软件
    密码学
    纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat)
    C++调用DLL方法
    QQ IP 地址查询相关
    【C/C++】概念: VC虚函数布局引发的问题
    DLL/EXE查看工具Dumpbin
  • 原文地址:https://www.cnblogs.com/huahuayu/p/8228367.html
Copyright © 2011-2022 走看看