从网站1提取数据

时间:2018-04-14 15:18:38

标签: python

请,我想从下图中提取以前的收盘价,开盘价,高价,低价。

The screen shot

下面是我的python代码,但输出正在跳过提取所需的内容。它显示的输出是,

import urllib.request as urllib2
from bs4 import BeautifulSoup as bs

url="http://www.nse.com.ng/market-data/trading-statistics/equities"
rawhtml = urllib2.urlopen(url).read()
parsedhtml = bs(rawhtml, 'html.parser')

stock = parsedhtml.find('tbody', attrs={'id': 'datacontainer'})
print(stock)

我已经废弃了动态内容。但是,它仅返回第一页上的内容。其他内容是分页的,它们具有相同的URL。网址为[http://www.nse.com.ng/market-data/trading-statistics/equities]。我的新代码:

from bs4 import BeautifulSoup as bs
import sys  
from PyQt5.QtWidgets import QApplication  
from PyQt5.QtCore import QUrl  
from PyQt5.QtWebEngineWidgets import QWebEnginePage 

class Client (QWebEnginePage):  
  def __init__(self, url):  
    self.app = QApplication(sys.argv)  
    QWebEnginePage.__init__(self)
    self.html = ''
    self.loadFinished.connect(self._on_load_Finished)  
    self.load(QUrl(url))  
    self.app.exec_()  

  def _on_load_Finished(self, result):  
    self.html = self.toHtml(self.Callable)
    print('Load Finished')

  def Callable (self, html_str):
      self.html = html_str
      self.app.quit()
  #  self.app.quit()  

url = 'http://www.nse.com.ng/market-data/trading-statistics/equities'  
r = Client(url)  
#parsedhtml = r.mainFrame.toHtml() 
soup = bs(r.html, 'html.parser')
stock = soup.find('table', attrs={'class': 'table table-condensed table-striped'})
print(stock)

请关于如何打开其他分页项目的任何想法

感谢。

@Shivam Pandya

1 个答案:

答案 0 :(得分:0)

您正在获取Null输出,因为当您请求该页面时,没有表格数据。这些值是动态获取的,因此在加载网页时将呈现这些值。

要了解我所说的内容,请尝试打印您的" parsedhtml"变量,然后观察你附带问题的照片所得到的输出。