仅解析div类python中的文本

时间:2016-09-24 22:01:44

标签: python python-2.7 beautifulsoup html-parsing

所以我想做的是从阅读源代码,搜索名为“gsc_prf_il”的div类,然后在这个div类中,只提取文本,忽略href链接。例如

ArrayList

但是当我使用这段代码时,它不起作用,只给我一个错误:AttributeError:'NoneType'对象没有属性'contents'

<div class="gsc_prf_il"><a href="/citations?view_op=view_org&hl=en&org=13784427342582529234">McGill University</a></div>

然后我尝试了这个:

soup=BeautifulSoup(p.readlines()[0], 'html.parser')
s=soup.find(id='gsc_prf_il')
scholar_info['department']= s.contents

它也不起作用。我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

只需找到 div 并提取文字,您正在寻找soup.find(id='gsc_prf_il')正在寻找id gsc_prf_il而不是div的元素与那个班级:

from bs4 import BeautifulSoup
url = "http://python-data.dr-chuck.net/comments_283660.html"

soup = BeautifulSoup("""<div class="gsc_prf_il"><a href="/citations?view_op=view_org&hl=en&org=13784427342582529234">McGill University</a></div>""")

所以请使用class_="gsc_prf_il"

print(soup.find("div", class_="gsc_prf_il").text) -> McGill University

或者使用css选择器:

print(soup.select_one("div.gsc_prf_il").text) -> McGill University