咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 424|回复: 0

[python] python爬虫beautifulsoup解析html方法

[复制链接]
  • TA的每日心情
    无聊
    2019-4-21 13:02
  • 签到天数: 3 天

    [LV.2]圆转纯熟

    发表于 2020-12-19 11:27:34 | 显示全部楼层 |阅读模式
    用BeautifulSoup 解析html和xml字符串
    python爬虫beautifulsoup解析html方法-1.png


    实例:
    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. from bs4 import BeautifulSoup
    4. import re
    5. #待分析字符串
    6. html_doc = """
    7. <html>
    8. <head>
    9.   <title>The Dormouse's story</title>
    10. </head>
    11. <body>
    12. <p class="title aq">
    13.   <b>
    14.     The Dormouse's story
    15.   </b>
    16. </p>
    17. <p class="story">Once upon a time there were three little sisters; and their names were
    18.   <a href="http://example.com/elsie" rel="external nofollow" class="sister" id="link1">Elsie</a>,
    19.   <a href="http://example.com/lacie" rel="external nofollow" class="sister" id="link2">Lacie</a>
    20.   and
    21.   <a href="http://example.com/tillie" rel="external nofollow" class="sister" id="link3">Tillie</a>;
    22.   and they lived at the bottom of a well.
    23. </p>
    24. <p class="story">...</p>
    25. """
    26. # html字符串创建BeautifulSoup对象
    27. soup = BeautifulSoup(html_doc, 'html.parser', from_encoding='utf-8')
    28. #输出第一个 title 标签
    29. print soup.title
    30. #输出第一个 title 标签的标签名称
    31. print soup.title.name
    32. #输出第一个 title 标签的包含内容
    33. print soup.title.string
    34. #输出第一个 title 标签的父标签的标签名称
    35. print soup.title.parent.name
    36. #输出第一个 p 标签
    37. print soup.p
    38. #输出第一个 p 标签的 class 属性内容
    39. print soup.p['class']
    40. #输出第一个 a 标签的 href 属性内容
    41. print soup.a['href']
    42. '''
    43. soup的属性可以被添加,删除或修改. 再说一次, soup的属性操作方法与字典一样
    44. '''
    45. #修改第一个 a 标签的href属性为 http://www.baidu.com/
    46. soup.a['href'] = 'http://www.baidu.com/'
    47. #给第一个 a 标签添加 name 属性
    48. soup.a['name'] = u'百度'
    49. #删除第一个 a 标签的 class 属性为
    50. del soup.a['class']
    51. ##输出第一个 p 标签的所有子节点
    52. print soup.p.contents
    53. #输出第一个 a 标签
    54. print soup.a
    55. #输出所有的 a 标签,以列表形式显示
    56. print soup.find_all('a')
    57. #输出第一个 id 属性等于 link3 的 a 标签
    58. print soup.find(id="link3")
    59. #获取所有文字内容
    60. print(soup.get_text())
    61. #输出第一个 a 标签的所有属性信息
    62. print soup.a.attrs
    63. for link in soup.find_all('a'):
    64.   #获取 link 的 href 属性内容
    65.   print(link.get('href'))
    66. #对soup.p的子节点进行循环输出  
    67. for child in soup.p.children:
    68.   print(child)
    69. #正则匹配,名字中带有b的标签
    70. for tag in soup.find_all(re.compile("b")):
    71.   print(tag.name)
    复制代码
    爬虫设计思路:
    python爬虫beautifulsoup解析html方法-2.png

    详细手册:
    https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
    到此这篇关于python爬虫beautifulsoup解析html方法 的文章就介绍到这了,更多相关beautifulsoup解析html内容请搜索咔叽论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持咔叽论坛!

    原文地址:https://www.jb51.net/article/201553.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-29 17:22

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表