【问题标题】:Scrape span tag刮跨度标签
【发布时间】:2021-02-18 19:16:17
【问题描述】:

我无法抓取此代码。

这是我的代码:

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    您不需要正则表达式选择器,只需选择最近的类然后使用.next_sibling

    ranks = soup.select('.item_color_title')
    for rank in ranks:
        rank = rank.next_sibling
        # cleanup non alphanumeric: "     520th (" ==> 520th
        rank = re.sub(r'\W', '', rank)
        print(rank)
    

    【讨论】:

      【解决方案2】:

      @Aleksandre Tsertsvadze,请不要发布代码图片,而是代码块内的代码本身。此外,请尝试提供最少的可重现示例、出了什么问题或您实际期望代码执行的操作。

      我无法重现该问题。我试图模仿您的代码风格,这就是我得到的 -

      from bs4 import BeautifulSoup
      
      html = """<span class="class_1 class_2"> mathing </span> <span> empty </span>
       "                   ()blabla "  <span class="class_1"> mathing2 </span>"""
      
      soup = BeautifulSoup(html, 'html.parser')
      for item in soup.find_all("span", class_=re.compile("^class_1")):
        print(item)
      

      python 3.8 上的输出 -

      <span class="class_1 class_2"> mathing </span>
      <span class="class_1"> mathing2 </span>
      

      你有什么问题?

      【讨论】:

        【解决方案3】:

        你可以试试

        import re
        for tag in soup_obj.find_all(re.compile("^span")):
            print(tag.next) # text
            print(tag) # tag
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-21
          相关资源
          最近更新 更多