[爬虫]beatifusoup简单教程

一个不能再简明的教程,强力推荐:beautifulsoup菜鸟教程

在上面的教程中,有两个文件如下:
aa.html完整代码

<!DOCTYPE html>
<html>
<head>
    <meta content="text/html;charset=utf-8" http-equiv="content-type" />
    <meta content="IE=Edge" http-equiv="X-UA-Compatible" />
    <meta content="always" name="referrer" />
    <link href="https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css" rel="stylesheet" type="text/css" />
    <title>百度一下,你就知道 </title>
</head>
<body link="#0000cc">
  <div id="wrapper">
    <div id="head">
        <div class="head_wrapper">
          <div id="u1">
            <a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻 </a>
            <a class="mnav" href="https://www.hao123.com" name="tj_trhao123">hao123 </a>
            <a class="mnav" href="http://map.baidu.com" name="tj_trmap">地图 </a>
            <a class="mnav" href="http://v.baidu.com" name="tj_trvideo">视频 </a>
            <a class="mnav" href="http://tieba.baidu.com" name="tj_trtieba">贴吧 </a>
            <a class="bri"  href="http://www.baidu.com/more/" name="tj_briicon" style="display: block;">更多产品 </a>
          </div>
        </div>
    </div>
  </div>
</body>
</html>

以下代码为beatifulsoup功能代码:

from bs4 import BeautifulSoup
file = open('aa.html', 'rb')
html = file.read()
bs = BeautifulSoup(html,"html.parser") # 缩进格式
print(bs.prettify()) # 格式化html结构
print(bs.title) # 获取title标签的名称
print(bs.title.name) # 获取title的name
print(bs.title.string) # 获取head标签的所有内容
print(bs.title.string) # 获取head标签的所有内容
print(bs.head) # # 获取head标签的所有内容
print(bs.div)  # 获取第一个div标签中的所有内容
print(bs.div["id"]) # 获取第一个div标签的id的值
print(bs.a) # # 获取第一个a标签的所有内容
print(bs.find_all("a")) # 获取所有的a标签,列表格式
print(bs.find(id="u1")) # 获取id="u1"
print(type(bs.a)) # 数据类型

# [document] #bs 对象本身比较特殊,它的 name 即为 [document]
print(bs.name)
#
# # head #对于其他内部标签,输出的值便为标签本身的名称
print(bs.head.name)
#
# # 在这里,我们把 a 标签的所有属性打印输出了出来,得到的类型是一个字典。
print(bs.a.attrs)
#
# #还可以利用get方法,传入属性的名称,二者是等价的
print(bs.a['class']) # 等价 bs.a.get('class')
#
# # 可以对这些属性和内容等等进行修改
bs.a['class'] = "newClass"
print(bs.a)
#
# # 还可以对这个属性进行删除
del bs.a['class']
print(bs.a)

for item in bs.find_all("a"):
    print(item.get("href")) # 获取所有的a标签,并遍历打印a标签中的href的值
for item in bs.find_all("a"):
    print(item.get_text())

以上代码,每行均跑了一下,完全正常,这些应该是最常用的功能了。

你可能感兴趣的:(爬虫)