请,我想从下图中提取以前的收盘价,开盘价,高价,低价。
下面是我的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
答案 0 :(得分:0)
您正在获取Null输出,因为当您请求该页面时,没有表格数据。这些值是动态获取的,因此在加载网页时将呈现这些值。
要了解我所说的内容,请尝试打印您的" parsedhtml"变量,然后观察你附带问题的照片所得到的输出。