从页面上的字段刮取值

时间:2013-04-27 16:21:37

标签: python screen-scraping beautifulsoup

我正在抓一个有这样一个链接的页面:

<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']

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

2 个答案:

答案 0 :(得分:1)

也许这就是你需要的:

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

答案 1 :(得分:1)

仅获取具有<a>属性的data个元素:

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+$"))]