【发布时间】:2017-01-29 22:16:38
【问题描述】:
我现在正在执行一项任务,即从似乎由 javascript 呈现的课程列表中系统地抓取内容。我在网上使用 PyQt4 跟踪了一些脚本,但失败了(我在下面复制了)。更准确地说,该脚本在一些带有 javascript 的网站上工作,这些网站通过单击其特定链接来加载内容。但是,下面的网站(ouhk,我在脚本下面复制的链接)似乎没有携带用于将用户定向到特定内容的链接,即节目信息、节目结构和费用等,而是使用标签容器和 FTP 进行存储和加载信息(我从它的源代码中找到的)。
我想知道是否有办法修改以下脚本,以便我可以使用 PyQt4 抓取这些内容,或者我必须寻找其他方法来达到这个目的?
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from lxml import html
from bs4 import BeautifulSoup
#import urllib.request
#from urllib.parse import urljoin
#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://www.ouhk.edu.hk/wcsprd/Satellite?pagename=OUHK/tcSchSing2014&c=C_LIPACE&cid=1450268562831&lang=eng&sch=LIP'
r = Render(url)
result = r.frame.toHtml()
print result
【问题讨论】:
标签: javascript python web-scraping pyqt