美丽的汤 - 获取标签内容

时间:2017-02-19 14:43:30

标签: python python-3.x web-scraping beautifulsoup

我拥有的html代码(这些条目中的多个)如下所示:

<p class="number-values">
    <span class="text">Count:</span>
    <span data-value="10000" name="nv">10,000</span>
    <span class="devider">#</span> <span class="text">Number:</span>
    <span data-value="500,000" name="nv">0.05</span>
</p>

现在,我正在寻找数据值标签的内容。我到目前为止所写的是:

url = http://example.com
source = urllib.request.urlopen(url).read()
soup = bs.BeautifulSoup(source,"lxml")

contents = soup.find_all("p", class_="number-values")

for content in contents:
    print(content.string)

然而它输出了这个(包括我无法弄清楚的许多无意义的回报):

Count:

10,000

#

Number:

0,05

我似乎找不到要提取的正确标签,也许我应该整个字符串正则表达式?

2 个答案:

答案 0 :(得分:1)

它确实有意义,因为你给了他p标签的类,它返回其子标签的所有文本。如果您只需要10,0000,05,则应搜索包含属性name = "nv"的span标记:

for content in soup.find_all("span" , {"name" : "nv"}):
    print (content.text) # 10,000 0,05

答案 1 :(得分:0)

尝试

contents = soup.find_all("p", {"class":"number-values"})