栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫学习33

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫学习33

python爬虫学习33

目录
    • python爬虫学习33
      • Beautiful soup的学习其四
        • 八、CSS选择器
          • 8-1 嵌套选择
          • 8-2 获取属性
          • 8-3 获取文本

Beautiful soup的学习其四

之前我们一同学习了,beautiful soup方法选择器——find_all()方法和find()方法。此外,beautiful soup还提供了另一种选择工具——CSS选择器。

八、CSS选择器

光说不练假把式,上例子!

from bs4 import BeautifulSoup

html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" soup = BeautifulSoup(html, 'lxml') print(soup.select('.nav .nav-head')) print(soup.select('ul li'))

运行结果:

可以看到核心的点就在于select()方法的使用上,下面就让我们一起去看看这个select()行不行。

8-1 嵌套选择

select方法同样也支持嵌套查询:

# 嵌套查询
from bs4 import BeautifulSoup

html = """

    
        hello
    
			
  • 首页
  • 我的书架
  • 玄幻小说
  • 修真小说
  • 都市小说
  • 穿越小说
  • 网游小说
  • 科幻小说
  • 排行榜单
  • 完本小说
  • 全部小说
""" soup = BeautifulSoup(html, 'lxml') # 嵌套查询ul节点下的所有li节点 for item in soup.select('ul'): print(soup.select('li'))

运行结果:在我们学过的三种方法中,嵌套查询实质上都是循环调用列表里的元素

8-2 获取属性

在获取属性的时候,依然与前面我们在方法选择器时学习的一样:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')
# 可以看到 列表中的元素依旧是 tag类,这样我们就可以直接调用其属性
print(type(soup.select('a')[0]))
for item in soup.select('a'):
    print(item['href'])
    print(item.attrs['href'])

运行结果:不管是偷懒做法还是标准的做法返回的结果都是一样的

8-3 获取文本

提到文本我们就想到了string这个方法,但是呢在CSS选择器中我们还可以使用get_方法:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')
for item in soup.select('a'):
    print('string 方法', item.string)
    print('get_text 方法', item.get_text())

运行结果:当然是一样的啦

至此 beautiful soup的学习就告一段落了,我们的能力又提高啦,加油xdm!

今日结束,明日继续!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号