无法刮刮同一页两次

时间:2018-07-01 20:46:55

标签: python beautifulsoup pyqt scrape

我正在尝试抓取网站 https://www.realtor.com/realestateandhomes-search/28083

这是我到目前为止编写的代码

class Client(QWebPage):
    def __init__(self, url):
        self.app = QApplication(sys.argv)
        QWebPage.__init__(self)
        self.loadFinished.connect(self.on_page_load)
        self.mainFrame().load(QUrl(url))
        self.app.exec_()
    def on_page_load(self):
        self.app.quit()


Price = []
url = 'https://www.realtor.com/realestateandhomes-search/28083'
client_response = Client(url)
source = client_response.mainFrame().toHtml()
soup = bs.BeautifulSoup(source, 'lxml')

for link in soup.findAll('span', class_='data-price-display'):
    Price.append(link.text) 

运行它,第一次一切正常。 第一次正确运行后。我再次运行它,不刮任何数据,只返回价格的[[]]

成功运行它之后,我将以前可以使用的确切代码复制并粘贴到一个空白文档中,然后再次运行。它什么也没返回。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

 Price.append(link.text)

需要缩进,因为它处于for循环下,但看起来却不是这样,至少在SO上是如此。您的代码是否相同?这也是您的整个代码吗?我看不到Client类的实例化位置-