常见的一段代码:
# -*- coding: cp1252 -*-
import csv
import urllib2
import sys
import time
from bs4 import BeautifulSoup
from itertools import islice
page = urllib2.urlopen('http://www.vodafone.de/privat/tarife/red-smartphone-tarife.html').read()
soup = BeautifulSoup(page)
prices = soup.findAll('div', {"class": "price"})
在此之后,我尝试使用以下代码来获取数据:代码 1:
for price in prices:
print unicode(price.string).encode('utf8')
输出 1:无输出,代码运行没有任何错误并且什么也不打印。
代码 2:
for price in prices:
textcontent3= u' '.join(price.stripped_strings)
if textcontent3:
print textcontent3
输出2:再次无输出,与输出1相同。
代码 3:
for price in prices:
fonttag = price.find('div')
if fonttag is not None:
print unicode(fonttag.string).encode('utf8').strip()
输出 3:无输出,与输出 1 相同
在此之后,我尝试打印 html 的相关部分:
代码 4:
print prices
输出4:
</span></div>, <div class="price">
<span id="price"><br/>
</span></div>, <div class="price">
<span id="price"><br/>
</span></div>]
从 Output4 中可以看出,html 漂亮的汤正在为我刮来没有价格价值。在网页上,此 html 结构如下所示:
<div class="price"><span id="price">49,90 €</span><br>einmalig</div>
漂亮的汤没有提取 html 页面中提到的价格值,因此我无法抓取价格数据。请帮助我解决这个问题并原谅我的无知,因为我是编程新手。