zoukankan      html  css  js  c++  java
  • 【Python学习之旅】---BeautifulSoup模块

     1 from bs4 import BeautifulSoup
     2 import re
     3 html='''
     4 <html>
     5 <body>
     6 <div>
     7     <ul>
     8         <li class="item-1"><a href="link1.html">张三</a></li>
     9         <li class="item-2"><a href="link2.html">李四</a></li>
    10         <li class="item-2"><a href="link3.html">王五</a>
    11     </li></ul>
    12 </div>
    13 '''
    14 #解析字符窜形式的html
    15 soup=BeautifulSoup(html,"lxml")
    16 
    17 #解析本地的html文档
    18 soup2=BeautifulSoup(open("123.html"))
    19 
    20 #格式化输出soup对象
    21 print(soup.prettify())
    22 
    23 #根据标签名获取标签信息 soup.标签名
    24 print(soup.li)
    25 #获取标签内容
    26 print(soup.li.string)
    27 #获取标签民
    28 print(soup.li.name)
    29 #获取标签内所有属性或属性值
    30 print(soup.li.attrs["class"])
    31 #获取直接子标签,结果是一个列表
    32 print(soup.ul.contents)
    33 #获取直接字标签,结果是一个生成器,不是单独打印ul中的每一个标签
    34 for i in soup.ul.children:
    35     print(i)
    36 #获取所有字标签,结果是一个生成器,会单独打印每一个标签
    37 for i in soup.ul.descendants:
    38     print(i)
    39 
    40 
    41 #搜索文档树
    42 #根据字符窜查找所有的li标签,返回一个结果集,装的是标签对象
    43 data=soup.find_all("li")
    44 for i in data:
    45     print(i.string)
    46 
    47 #根据正则表达式查找标签
    48 data=soup.find_all(re.compile("^a"))
    49 for i in data:
    50     print(i.string)
    51 
    52 
    53 #根据属性查找标签
    54 data=soup.find_all(href="link2.html")
    55 for i in data:
    56     print(i)
    57 
    58 
    59 #根据标签内容获取标签内容
    60 data=soup.find_all(text=re.compile(""))
    61 print(data[0])
  • 相关阅读:
    My first blog in cnblog
    浅析JavaScript中this储存
    input 文本框密码框的只读属性
    Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()
    jquery使用$.getJson()跨域大数据量请求方法
    JS中关于clientWidth offsetWidth scrollWidth 等的含义及区别
    JS性能优化
    npm 创建 node.js 项目
    css 垂直居中的几种方法
    字符串转数组
  • 原文地址:https://www.cnblogs.com/chenyuxia/p/12535528.html
Copyright © 2011-2022 走看看