<span> 标志前的文字
Text before <span> flag
这是我的第一个 BS 编码实验。
我抓取的网站是 here
我遇到的问题是这段代码:
<div class="cmg_team_name">
ARST
<span>101</span>
</div>
这是我的代码:
import numpy as np
from bs4 import BeautifulSoup
import urllib2
url = "http://covers.com/Sports/NCAAF/Matchups?selectedDate=2015-10-13"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read(), 'html.parser')
universities = soup.find_all('div',{'class':'cmg_team_name'})
#for university in universities:
# print university.contents
# print "****************"
print universities[0]
我的问题是如何只访问跨度标志之前的文本。在这个例子中,我只想要 ARST
。
我试过 print universities[0].get_text()
、print universities[0].string
产生 None
以及数组表示法。我知道我将如何在 C++ 中执行此操作,但我假设 python/BSoup 会在一行中执行此操作...在此先感谢!
您必须先从 div 中删除跨度,然后清除多余的字符,例如 space 和回车符 returns。
for university in universities:
span = [span.extract() for span in university('span')]
univ = university.text.replace(' ','').replace('\r','').replace('\n','')
print univ
这是我的第一个 BS 编码实验。
我抓取的网站是 here
我遇到的问题是这段代码:
<div class="cmg_team_name">
ARST
<span>101</span>
</div>
这是我的代码:
import numpy as np
from bs4 import BeautifulSoup
import urllib2
url = "http://covers.com/Sports/NCAAF/Matchups?selectedDate=2015-10-13"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read(), 'html.parser')
universities = soup.find_all('div',{'class':'cmg_team_name'})
#for university in universities:
# print university.contents
# print "****************"
print universities[0]
我的问题是如何只访问跨度标志之前的文本。在这个例子中,我只想要 ARST
。
我试过 print universities[0].get_text()
、print universities[0].string
产生 None
以及数组表示法。我知道我将如何在 C++ 中执行此操作,但我假设 python/BSoup 会在一行中执行此操作...在此先感谢!
您必须先从 div 中删除跨度,然后清除多余的字符,例如 space 和回车符 returns。
for university in universities:
span = [span.extract() for span in university('span')]
univ = university.text.replace(' ','').replace('\r','').replace('\n','')
print univ