博客
关于我
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获取标签属性,如classid
    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

    你可能感兴趣的文章
    Ploly:如何在Excel中嵌入完全交互的Ploly图形?
    查看>>
    plotloss记录
    查看>>
    Plotly (Python) 子图:填充构面和共享图例
    查看>>
    Plotly 中的行悬停文本
    查看>>
    Plotly 停用 x 轴排序
    查看>>
    Plotly 域变量解释(多图)
    查看>>
    Plotly 绘制表面 3D 未显示
    查看>>
    Plotly-Dash 存在未知问题并创建“加载依赖项时出错“;通过使用 Python-pandas.date_range
    查看>>
    Plotly-Dash:如何过滤具有多个数据框列的仪表板?
    查看>>
    Plotly:如何为 x 轴上的时间序列设置主要刻度线/网格线的值?
    查看>>
    Plotly:如何从 x 轴删除空日期?
    查看>>
    Plotly:如何从单条迹线制作堆积条形图?
    查看>>
    Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
    查看>>
    Plotly:如何使用 Plotly Express 组合散点图和线图?
    查看>>
    Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
    查看>>
    Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
    查看>>
    Plotly:如何使用 updatemenus 更新一个特定的跟踪?
    查看>>
    Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
    查看>>
    Plotly:如何向烛台图添加交易量
    查看>>
    Plotly:如何在 plotly express 中找到趋势线的系数?
    查看>>