所以我想做的是从阅读源代码,搜索名为“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
它也不起作用。我究竟做错了什么?
答案 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