分离/解析某些元素的列表并将它们放在单独的列表中。 (蟒蛇)

时间:2015-10-22 23:41:10

标签: python string list parsing web

from bs4 import BeautifulSoup #imports beautifulSoup package
import urllib2




url2 = 'http://www.waldenu.edu/doctoral/phd-in-management/faculty'
page2 = urllib2.urlopen(url2) 
soup2 = BeautifulSoup(page2.read(), "lxml")

row2 = soup2.findAll('p')
row2 = row2[18:-4] 

names2 = []
firstName = []
lastName = []
for x in row2:
    currentString2 = x.findAll('strong')
    if len(currentString2) > 0:
        currentString2 = currentString2[0].text
        tokens = currentString2.split(' ')
        firstName.append(tokens[0])
        for token in tokens[1:]:
           check = tokens[1]            
           if check[1] != '.': and check[1] != '\\':
               lastName.append(tokens[1])

嘿伙计们,我正在尝试解析这个列表,我收集名字并将这些名字放在他们自己的列表中,然后找到姓氏并将它们放在他们自己的列表中。我也在检查他们是否在第一个名字之后有一个首字母,如“John B. Smith”,并且基本上是跳过“B”。所以我只将姓氏附加到列表中。有什么帮助吗?我想我现在所拥有的只是如果这个人的名字有一个中间的首字母,就不会附上姓氏。 :/

1 个答案:

答案 0 :(得分:0)

如果你有信心丢掉中间的任何东西,听起来就像是:

#omitted
tokens = currentString2[0].text
assert(len(tokens) >= 2)
firstName.append(tokens[0])
lastName.append(tokens[-1])