【问题标题】:Can't get value of tag using BeautifulSoup无法使用 BeautifulSoup 获得标签的价值
【发布时间】:2022-01-11 12:26:59
【问题描述】:

我的代码:

value_list = soup.findAll("div", attrs ={"class":"value"})

value_list[0] 有:

< div class="value" data-v-d3544a4c="" >
                            Movie< !-- -- >< /div >

当我尝试使用value_list[0].string 获取标签值时,我得到了一个None 返回。

否则我怎样才能获得价值?

【问题讨论】:

  • 嗨@Itan Mallul 欢迎来到SO!你试过.text 方法吗?如果可能的话,你可以分享网址
  • 你想获取什么数据?

标签: python web-scraping beautifulsoup data-mining


【解决方案1】:

注意: 在新代码中使用 find_all() 而不是旧的 findAll() 语法 - 您的 html 看起来无效

value_list = soup.find_all("div", attrs ={"class":"value"})

要获取标签的文本,请使用.textget_text()

value_list[0].get_text(strip=True)

示例

html = '''
<div class="value" data-v-d3544a4c="" >
                            Movie< !-- -- ></div >
'''
soup = BeautifulSoup(html)
value_list = soup.findAll("div", attrs={"class":"value"})
value_list[0].get_text(strip=True)

输出:

Movie< !-- -- >

【讨论】:

  • 我尝试使用 find_all() 但它没有解决它。使用 get_text() 时,我得到 \n\t\t\tMovie\n\t\t\t
  • find_all() / findAll() 的工作方式相同 - 您可以使用 .get_text(strip=True) 剥离字符串
  • 成功了!谢谢您的帮助!如果我有贡献,我会支持你
  • 完成,再次感谢 :)