我有 这份 list
[<th align="left">
<a href="blablabla">F</a>ojweousa</th>,
<th align="left">
<a href="blablabla">S</a>awdefrgt</th>, ...]
和 想要">
后面的一个字符</a>
之间的多个字符和 </th>,
连接在一起,以便我可以继续我的生活。
这是我的 代码
item2 = []
for element in items2:
first_letter = re.search('">.</a', str(items2))
second_letter = re.search(r'</a>[a-zA-Z0-9]</th>,', str(items2))
item2.append([str(first_letter) + str(second_letter)])
我知道我应该做类似 item2.group
的事情或 item2.join
但如果我这样做,输出 变得更加凌乱。这是当前代码的输出[['<re.Match object; span=(155, 161), match=\'">F</a\'>None'],
['<re.Match object; span=(155, 161), match=\'">F</a\'>None'],
...]]
我会喜欢 输出看起来像这样,以便我可以在 pd.dataframe 中使用它:[Fojweousa, Sawdefrgt, ...]
这是一个列表,这就是为什么我不能使用 html bs4 或选择方法。
最佳答案
您可以使用 BeautifulSoup get_text()
从您使用 find_all
找到的每个元素中获取纯文本和 strip
摆脱前导和尾随空格:
items2 = table.find_all('th', attrs={'align': 'left'})[1:]
result = [x.get_text().strip() for x in items2]
在这里,.find_all('th', attrs={'align': 'left'})
查找所有 th
具有属性 align
的元素等于 left
, 和 [1:]
跳过第一次出现。接下来,
[x.get_text().strip() for x in items2]
是一个列表推导式,它遍历找到的项目( items2
, x
是每个找到的元素)并从每个 x
获取纯文本元素使用 x.get_text()
和 strip()
删除前导/尾随空格。
关于python - 正则表达式for循环在python中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66152180/