python - 正则表达式for循环在python中的列表

标签 python html for-loop beautifulsoup

这份 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]是一个列表推导式,它遍历找到的项目( items2x 是每个找到的元素)并从每个 x 获取纯文本元素使用 x.get_text()strip()删除前导/尾随空格。

    关于python - 正则表达式for循环在python中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66152180/

    相关文章:

    python - 使用 Base64 和 Pickle 进行编码和解码

    html - 不要将 css 添加到具有事件类的链接

    javascript - 有人可以解释一下向对象添加新属性的循环过程吗?

    ruby - 如何在 Ruby 中正确使用 for 循环?

    c - 为什么该程序不起作用?

    python - 如何释放 SWIG 返回的 malloc'ed char*

    python - 如何使用Pynsist在python中安装numpy

    python - 需要转置 Pandas 数据框

    javascript - 仅显示客户服务功能页面底部的移动 View 和滚动条

    javascript - 交换两个 DIV 元素? (预览一个而另一个占据整个页面) - EDITED : Swapping DIV and IFRAME