博客
关于我
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

    你可能感兴趣的文章
    php laravel请求处理管道(装饰者模式)
    查看>>
    ReentrantReadWriteLock读写锁底层实现、StampLock详解
    查看>>
    PHP mongoDB 操作
    查看>>
    ReentrantLock读写锁
    查看>>
    ReentrantLock的公平锁与非公平锁
    查看>>
    php mysql procedure获取多个结果集
    查看>>
    php mysql query 行数,PHP和MySQL:返回的行数
    查看>>
    php mysql session_php使用MySQL保存session会话
    查看>>
    PHP mysql_real_escape_string() 函数防SQL注入
    查看>>
    php mysql优化方法_MySQL优化常用方法
    查看>>
    PHP OAuth 2.0 Server
    查看>>
    php odbc驱动,php常用ODBC函数集(详细)
    查看>>
    php openssl aes ecb,php openssl_encrypt AES-128-ECB iOS
    查看>>
    php paypal rest api,PayPal REST API指定网络配置文件PHP
    查看>>
    php pcntl 多进程学习
    查看>>
    PHP pcntl_fork不能在web服务器中使用的变通方法
    查看>>
    php private ,public protected三者的区别
    查看>>
    php PSR规范
    查看>>
    php rand() 重复,array_rand()函数从另外一个数组中随机取得的一定数量的数组的元素是否会重复?...
    查看>>
    php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用
    查看>>