【问题标题】:Scraping value from field on a page从页面上的字段中抓取值
【发布时间】:2013-04-21 16:26:43
【问题描述】:

我正在抓取一个包含如下链接的页面:

<a id="something" href="place" class="thing" data="12345">
<span class="otherthing"></span></a>

我想提取名为 data 的字段中的数字。我一直在尝试像这样使用 BeautifulSoup:

soup = BeautifulSoup(response)
for a in soup.findAll('a'):
        if 'data' in a['a']:
                print a['a']['data']

但我遇到了一个关键错误。

【问题讨论】:

    标签: python screen-scraping beautifulsoup


    【解决方案1】:

    也许这就是你需要的:

    for a in soup.findAll('a'):
        if a.has_attr('data'):
            print(a['data'])
    

    【讨论】:

      【解决方案2】:

      仅获取具有data 属性的&lt;a&gt; 元素:

      data = [a['data'] for a in soup.findAll('a', data=True)]
      

      只保留那些在data 属性中包含整数的元素:

      import re
      
      data = [int(a['data']) for a in soup.findAll('a', data=re.compile(r"^\d+$"))]
      

      【讨论】:

        猜你喜欢
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-06
        • 1970-01-01
        • 2011-03-29
        • 2017-01-16
        相关资源
        最近更新 更多