怎么用bs4提取指定元素呢?

clipboard.png
这两个值怎么提取出来呢

阅读 4.9k
2 个回答

你需要了解 HTML 基础,然后查阅 bs4 文档便可。

  1. HTML5, http://www.html5-tutorials.org/
  2. bs4, https://www.crummy.com/softwa...

请参考如下代码

# -*- coding: utf-8 -*-
'''
@author 李毅
'''
from bs4 import BeautifulSoup


html_doc = '''
<html>
  <head></head>
  <body>
  <div class="content-right">
    <h1 class="app-name">
      <span>五子棋</span>
    </h1>
    <div class="detail">
      <span class="download-num">下载次数:1950</span>
    </div>
  </div>
  </body>
</html>
'''
soup = BeautifulSoup(html_doc, 'html.parser')

cont_right = soup.select('body div.content-right')[0]

app_name = cont_right.select('h1.app-name span')[0]
print('app-name: {}'.format(app_name.string))

down_num = cont_right.select('div.detail span.download-num')[0]
print('download-num:: {}'.format(down_num.string))

用BeautifulSoup的strings参数,返回该标签内字符串的生成器,定位到‘那个span’再用strings即可

a1 = list(soup.find('h1',class_='app-name').span.strings)[0]#定位到h1下的span,生成器列表化后索引得到五子棋
a2 = list( soup.find(class_="download-num").strings)[0]#直接定位到<span class="download-num">后用strings
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题