Python 2.7 以下代码没有得到任何输出或错误?

Python 2.7 以下代码没有得到任何输出或错误?,python-2.7,screen-scraping,beautifulsoup,Python 2.7,Screen Scraping,Beautifulsoup,我使用以下代码从url(代码中提到)中提取数据。我运行了代码,但它没有给出任何输出,也没有抛出任何错误?我不熟悉python语言,这可能是一个愚蠢的问题。有人能帮我吗 import csv import urllib2 import sys import time from bs4 import BeautifulSoup page = urllib2.urlopen('http://www.t-mobile.de/smartphones/0,22727,23392-_3-0--0-all-,0

我使用以下代码从url(代码中提到)中提取数据。我运行了代码,但它没有给出任何输出,也没有抛出任何错误?我不熟悉python语言,这可能是一个愚蠢的问题。有人能帮我吗

import csv
import urllib2
import sys
import time
from bs4 import BeautifulSoup
page = urllib2.urlopen('http://www.t-mobile.de/smartphones/0,22727,23392-_3-0--0-all-,00.html').read()
soup = BeautifulSoup(page)
soup.prettify()
with open('TMO_DE_2012-12-26.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',')
    spamwriter.writerow(["Date","Month","Day of Week","Device Name","Price"])
    items = soup.findAll('div', {"class": "top"},text=True)
    prices = soup.findAll('strong', {"class": "preis-block"})
    for item, price in zip(items, prices):
        textcontent = u' '.join(price.stripped_strings)
        print unicode(item.string).encode('utf8').strip()
        if textcontent:            
            spamwriter.writerow([time.strftime("%Y-%m-%d"),time.strftime("%B"),time.strftime("%A") ,unicode(item.string).encode('utf8').strip(),textcontent])
该页面上没有包含文本的
元素,因此
项目
是一个空列表。删除
text=True
过滤器:

items = soup.findAll('div', {"class": "top"})
并从中提取所有文本:

item_text = u' '.join(item.stripped_strings)
if textcontent and item_text:            
    spamwriter.writerow([time.strftime("%Y-%m-%d"),time.strftime("%B"),time.strftime("%A") , item_text, textcontent])
或者,集成到现有代码中:

with open('TMO_DE_2012-12-26.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',')
    spamwriter.writerow(["Date","Month","Day of Week","Device Name","Price"])
    items = soup.findAll('div', {"class": "top"})
    prices = soup.findAll('strong', {"class": "preis-block"})
    for item, price in zip(items, prices):
        textcontent = u' '.join(price.stripped_strings)
        item_text = u' '.join(item.stripped_strings)
        if item_text and textcontent:            
            spamwriter.writerow([time.strftime("%Y-%m-%d"),time.strftime("%B"),time.strftime("%A"), item_text.encode('utf8'),textcontent.encode('utf8')])

顺便说一句,
soup.prettify()
用于输出可读的HTML,但您不使用该输出。在使用时,该行没有任何作用。不,我没有创建任何重复帐户,user1915050是我的朋友,他正在同一个项目上与我合作;编码风格有些熟悉。:-)谢谢你的回答。我在做了更改后运行了代码,但是所有行的“items”都没有显示@我事先用你的URL测试了代码。你确定你做了正确的更改吗?