我在我的代码中尝试了以下无限循环,但它似乎不起作用

时间:2014-08-19 07:03:54

标签: python

我在我的代码中尝试了以下无限循环,但它似乎无效,请帮忙,谢谢!

代码:

import time
import sys
from qt4 import QtWebKit
from qt4 import QtCore
from qt4 import QtGui
from bs4 import BeautifulSoup

while True: 

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0'} #Needed to prevent 403 error on Wikipedia

class Render(QtWebKit.QWebPage):
    def __init__(self, url):
        self.app = QtGui.QApplication(sys.argv)
        QtWebKit.QWebPage.__init__(self)
        self.loadFinished.connect(self._loadFinished)
        self.mainFrame().load(QtCore.QUrl(url))
        self.app.exec_()

    def _loadFinished(self, result):
        self.frame = self.mainFrame()
        self.app.quit()

url = 'http://youneednothing.com/'
r = Render(url)
content = unicode(r.frame.toHtml())

soup = BeautifulSoup(content)
print soup
time.sleep(10)

我已经将以下内容用于循环我的代码,但它似乎不起作用。

 import time

 Wihle True:
 [my code]
 time.sleep(10)

4 个答案:

答案 0 :(得分:2)

试试这个,这是一个无限循环:

while True:
    print soup
    time.sleep(10)

在python中,您必须使用制表符或空格来定义代码块。在这种情况下,print souptime.sleep(10)组成了while True:下方的块,从而定义了需要无限循环的代码。

查看有关while和其他控制流语句的Python教程,例如3.2 First Steps Towards Programming(第二个要点)。

答案 1 :(得分:1)

Python使用缩进来分隔不同的代码块。所以你需要在while语句之后缩进代码,就像在类定义中那样。

所以代码应如下所示:

while True:
    [your code]
    time.sleep(10)

答案 2 :(得分:1)

每次都不需要执行课程。

import time
import sys
from qt4 import QtWebKit
from qt4 import QtCore
from qt4 import QtGui
from bs4 import BeautifulSoup



header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0'} #Needed to prevent 403 error on Wikipedia

class Render(QtWebKit.QWebPage):
    def __init__(self, url):
        self.app = QtGui.QApplication(sys.argv)
        QtWebKit.QWebPage.__init__(self)
        self.loadFinished.connect(self._loadFinished)
        self.mainFrame().load(QtCore.QUrl(url))
        self.app.exec_()

    def _loadFinished(self, result):
        self.frame = self.mainFrame()
        self.app.quit()

while True: 
    url = 'http://youneednothing.com/'
    r = Render(url)
    content = unicode(r.frame.toHtml())

    soup = BeautifulSoup(content)
    print soup
    time.sleep(10)

答案 3 :(得分:0)

这是对您的代码的建议,因为我认为其他答案已经足够,但这可能很方便。 在您将模块导入模块的顶部,您有:

from qt4 import QtWebKit
from qt4 import QtCore
from qt4 import QtGui

这可以归结为:

from qt4 import QtWebKit, QtCore, QtGui

导入它时,在一行中导入多个内容并不“好”,除了使用from ... import ..., ..., ...技术。 只是一个方便的提示:)