python BeautifulSoup4实战常用操作

首先看下面几行代码:

    import requests
    from bs4 import BeautifulSoup as bs
    content = requests.get('https://book.douban.com/').text
    soup = bs(content, 'lxml')
    soup.

这里soup后面可以跟各种方法。下面主要介绍实用的方法。

  • name:获取Tag的名称
  • string:获取Tag的内容
  • attrs:获取Tag的所有属性。一个Tag之中可能包含多个属性,例如id、class等等,此时我们需要获取所有的属性。
  • attrs后面可以跟列表,例如attrs[‘li’]
  • contents:获取Tag的所有子节点,返回一个list
  • children:获取Tag的所有子节点,返回一个生成器
  • descendants:获取Tag的所有子孙节点
  • strings:如果Tag包含多个字符串,即在子孙节点中有内容,可以用此获取,而后进行遍历
  • parent:获取Tag的父节点
  • parents:递归得到父辈元素的所有节点,返回一个生成器
  • previous_sibling:获取当前Tag的上一个节点,属性通常是字符串或空白,真实结果是当前标签与上一个标签之间的顿号和换行符
  • next_sibling:获取当前Tag的下一个节点,属性通常是字符串或空白,真是结果是当前标签与下一个标签之间的顿号与换行符
  • previous_siblings:获取当前Tag的上面所有的兄弟节点,返回一个生成器
  • next_siblings:获取当前Tag的下面所有的兄弟节点,返回一个生成器
  • next_element:获取解析过程中下一个被解析的对象(字符串或tag),可能与next_sibling相同,但通常是不一样的
  • previous_elements:返回一个生成器,可以向前访问文档的解析内容
  • next_elements:返回一个生成器,可以向后访问文档的解析内容
  • has_attr:判断Tag是否包含属性

过滤器find_all

    import requests
    from bs4 import BeautifulSoup as bs
    content = requests.get('https://book.douban.com/').text
    soup = bs(content, 'lxml')
    soup.find_all('ul')
    soup.find_all(id='***')
    soup.find_all(class_='***')
    soup.find_all(text='***')  #  text方法:匹配文本内容

过滤器find

与find_all不同之处是只获取一个内容。

CSS选择器

    import requests
    from bs4 import BeautifulSoup as bs
    content = requests.get('https://book.douban.com/').text
    soup = bs(content, 'lxml')
    soup.selecte(.div #id)
    soup.selecte('ul li')
    soup.selecte('ul'[0])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值