博客
关于我
python爬虫beautifulsoup4系列2
阅读量:472 次
发布时间:2019-03-06

本文共 1486 字,大约阅读时间需要 4 分钟。

BeautifulSoup入门:从基础到实践

一、读取HTML页面

首先,我们需要一个简单的HTML页面。将以下代码复制到一个文件中,保存为example.html:

    
yoyo ketang

yoyoketang

这里是我的微信公众号:yoyoketang fiddler, python, selenium; 快来关注吧!

将这个文件和脚本放在同一个文件夹下,使用Python的open函数读取HTML文件:

with open('example.html', 'r', encoding='utf-8') as f:    content = f.read()print(content)

二、解析器:html.parser

BeautifulSoup的BeautifulSoup类可以接收一个解析器参数。传入'html.parser'即可,无需额外安装:

from bs4 import BeautifulSouphtml_content = """    
yoyo ketang

yoyoketang

这里是我的微信公众号:yoyoketang fiddler, python, selenium; 快来关注吧!

"""soup = BeautifulSoup(html_content, 'html.parser')print(soup.prettify())

三、BeautifulSoup对象的类型

BeautifulSoup将HTML解析为四种主要对象:

  • Tag:标签对象,如<p class="title">。
  • NavigableString:文本对象,如这里是我的微信公众号:yoyoketang。
  • BeautifulSoup:整个文档对象。
  • Comment:注释对象,如<!-- for HTML5 -->。
  • 四、Tag对象

  • 获取标签:通过.find_all()方法查找标签,如查找<p>标签:
  • tags = soup.find_all('p')for tag in tags:    print(tag.name)
    1. 访问属性:使用.attrs获取标签属性,如class和id:
    2. tag = soup.find('a', class_='sister')print(tag.attrs)
      1. 获取文本:使用.text属性提取标签内的文本内容:
      2. print(tag.text)

        五、实战案例:爬取糗事百科首页段子

        from bs4 import BeautifulSoupimport requestsurl = 'https://www.qiushibaike.com/'response = requests.get(url)html = response.textsoup = BeautifulSoup(html, 'html.parser')duanzi_list = soup.find_all('div', class_='content')for duanzi in duanzi_list:    print(duanzi.find('span').text)

        关注我 | Python接口自动化交流

        欢迎加入Python接口自动化交流群:226296743

    你可能感兴趣的文章
    python函数
    查看>>
    python----线程、进程、协程的区别及多线程详解
    查看>>
    python---5
    查看>>
    python---使用celery分布式系统异步发送短信(云通讯)来验证登录
    查看>>
    python--003--百分号字符串拼接、format
    查看>>
    Python--10、线程
    查看>>
    Python--Redis实战:第四章:数据安全与性能保障:第4节:复制
    查看>>
    python--基本代码规范
    查看>>
    Python--抽象类接口类
    查看>>
    PYTHON--欧拉习题二
    查看>>
    python--高级应用总结
    查看>>
    python-520表白代码,我看谁说程序员不懂浪漫,送你几套表白代码,一步到位
    查看>>
    Python-Asyncio TypeError:无法在‘;等待‘;表达式中使用对象DICT
    查看>>
    Python-AttributeError:‘;dict&39;对象没有属性‘;序列‘;
    查看>>
    Python-ldap:是否可以在不显式写入密码的情况下进行绑定?
    查看>>
    python出现 unknown encoding: idna 的处理方法
    查看>>
    Python出现 RuntimeError: dictionary changed size during iteration 的解决方法
    查看>>
    Python-numpy(2)数组的操作
    查看>>
    Python-Numpy的tile函数用法
    查看>>
    python-open函数
    查看>>