Beautifulsoup,无法比较字符串

时间:2015-05-12 10:04:29

标签: python python-3.x beautifulsoup

我正在尝试编写一个网络蜘蛛来收集一些链接和文本。 我有一张桌子正在使用,每行的第二个单元格中都有一个数字,我想要的就是得到那个数字,如果它是我需要的那个,那么就抓住单元格2和4中的链接和文本。

一切正常,但我似乎无法将单元格中的数字与我所拥有的数字列表进行比较。

我使用单元格[1] .get_text()获取数字(我创建了每行所有单元格的列表),这很好用,而type()返回'class'str'',我也确保将我的数字列表转换为字符串。

但是当我尝试比较它们时,它总是返回'False'

import bs4

file = open(r"some html file", 'rb')
rng_lst = [str(x) for x in range(5, 43)]


soup = bs4.BeautifulSoup(file)

table = soup.findAll('table')[0]
for row in table.findAll('tr'):
    cells = row.findAll('td')
    if len(cells) >= 6:
        check = cells[1].get_text()
        for n in rng_lst:
            if n == check:
                # do stuff

我已经尝试了我能想到的一切,我总是得到'假',使用==或'是'不起作用,如果我尝试使用'in'它确实有效但如果我需要5号细胞我也可以得到15或25。

1 个答案:

答案 0 :(得分:2)

最有可能的是,您只需要剥离您从单元格中获取的文本

check = cells[1].get_text(strip=True)

这仍然是一个猜测,但是受过教育的"之一。