0

我正在学习re和的模块BeautifulSoup。我对下一个代码的几行有疑问。我不知道group()括号的用途和里面的内容contents[]

from bs4 import BeautifulSoup
import urllib2
import re

url = 'http://www.ebay.es/itm/LOTE-5-BOTES-CERVEZAARGUS-SET-5-BEER-CANSLOT-5-CANETTES-BIRES-LATTINE-BIRRA-/321162173293'  #raw_input('URL: ')   
code = urllib2.urlopen(url).read();
soup = BeautifulSoup(code)
tag = soup.find('span', id='v4-27').contents[0]

price_string = re.search('(\d+,\d+)', tag).group(1)
precio_final = float(price_string.replace(',' , '.'))

print precio_final
4

1 回答 1

0

.contents从标签返回项目列表。例如:

>>> from bs4 import BeautifulSoup as BS
>>> soup = BS('<span class="foo"> bar baz <a href="http://foo.com">link</a></span>')
>>> print soup.find('span').contents
[u' bar baz ', <a href="http://foo.com">link</a>]

[0]用于访问列表.contents返回的第一个元素。在上面的示例中,它将返回bar baz

.group(1)从正则表达式返回第二个(索引从 0 开始,记住)匹配值。查看您的正则表达式,它从看起来像的东西中返回第二个数字n1,n2

于 2013-07-12T02:09:26.967 回答