soup.find(“table”,{“caption”:“blind”})

时间:2017-12-10 02:36:55

标签: python beautifulsoup caption

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://companyinfo.stock.naver.com/v1/company/c1010001.aspx?cmp_cd=056190")
bsj = BeautifulSoup(html, 'html.parser')
table = bsj.find_all("table" , {"class" : "gHead01 all-width"}).

但是表格的标题属性是盲目的。

The table.png

我该怎么办才能拿到桌子?

1 个答案:

答案 0 :(得分:0)

不完全是。 <caption>元素是表格的第一个子元素。

您可以将函数传递给BeautifulSoup.find以返回符合指定条件的标记。

soup = BeautifulSoup(markup, "html5lib")

def table_having_caption_text(text):
    def query(tag):
        first_child = tag.next
        return (
             tag.name=="table" 
             and first_child.name == 'caption'
             and first_child.text == text
        )
    return query

print(
     soup.find(
        table_having_caption_text("Blind")
     )
)