我想从列表中的网站获取名称。
soup = bs4.BeautifulSoup(page.text, 'html.parser')
tbl = soup.find('ul', class_='static-top-names part1')
for link in tbl:
names = link.get_text()
print(names)
因此,我试图从网站上获取一些名称,当我应用上述代码时,我将名称获取为。当我尝试对其进行迭代时,会得到以下输出。
我想摆脱文本数据中的数字,也只想以列表格式显示名称。
我想要得到的只是这些纯名称,并希望将它们放在列表中。有帮助吗?
答案 0 :(得分:1)
如果格式始终为#. name
,则可以执行以下操作:
name.split('. ', 1)[1]
答案 1 :(得分:0)
您可以简单地用'分割。点字符,或者如果名称前有空格,甚至还有一个空格。
因此name.split('' )[-1]
name.split('.')[-1]
仅给出名称。然后,您可以将这些名称附加到列表中。
类似这样的事情。
names = [link.get_text().split(' ')[-1] for link in tbl]
这将为您提供名称列表,之后我使用[-1]
作为列表索引,因为您的文本在用空格分割后仅包含两项。因此,如果还有更多项目,请使用适当的索引。
答案 2 :(得分:0)
使用正则表达式保持一致性。
import re
s = '1.TEST'
print(re.sub('\d+.','',s))
只会给您测试。这将消除与点以下数量的任何尺寸。基本上,更换任何数量,然后用空点。
遍历原始列表并使用列表理解功能同时执行以上操作
new_list = [re.sub('\d+.','',s) for s in original_list]
这应该给你新的列表按照您的要求。