我正在尝试编写一个网络蜘蛛来收集一些链接和文本。 我有一张桌子正在使用,每行的第二个单元格中都有一个数字,我想要的就是得到那个数字,如果它是我需要的那个,那么就抓住单元格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。
答案 0 :(得分:2)
最有可能的是,您只需要剥离您从单元格中获取的文本:
check = cells[1].get_text(strip=True)
这仍然是一个猜测,但是受过教育的"之一。