鍍金池/ 問(wèn)答/Python  HTML/ 怎么用bs4提取指定元素呢?

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

clipboard.png
這兩個(gè)值怎么提取出來(lái)呢

回答
編輯回答
久舊酒

你需要了解 HTML 基礎(chǔ),然后查閱 bs4 文檔便可。

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

請(qǐng)參考如下代碼

# -*- 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">下載次數(shù):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))
2017年11月17日 17:27
編輯回答
脾氣硬

用BeautifulSoup的strings參數(shù),返回該標(biāo)簽內(nèi)字符串的生成器,定位到‘那個(gè)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
2017年8月14日 05:26