“source requests get与Chrome中的view source选项相同”…view source提供url的真实html源代码,与requests get相同。所以你看到的是你应该期待看到的。在
您的问题与noscript标记无关,而是页面的内容在加载后通过javascript更改。在
正如@alecxe所指出的,你需要更深入地了解coursera网站是如何构建的,比如在Chrome开发工具的“网络”选项卡中观察XHR请求,查看加载实际内容的url。。。然后你就可以直接用请求加载那些url了。在
它们提供的示例代码如下所示:import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from lxml import html
#Take this class for granted.Just use result of rendering.
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
url = 'http://pycoders.com/archive/'
r = Render(url)
result = r.frame.toHtml()
#This step is important.Converting QString to Ascii for lxml to process
archive_links = html.fromstring(str(result.toAscii()))
print archive_links