使用Python PyQt使用Javascript内容进行Web Scraping

时间:2016-09-21 15:10:50

标签: javascript python web-scraping pyqt

我现在正在执行从一个似乎是由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

1 个答案:

答案 0 :(得分:0)

了解使用selenium Library!我用这个库搞砸了多个网站。人们说它很慢,但为了我的目的,它很有效。

此外,如果你有点新的网页抓取,请查看Xpath用于抓取难以获得的元素。使用Xpath,你需要在chrome浏览器中执行的操作是右键单击页面,insspect元素,展开所有标记,然后右键单击要抓取的标记并单击复制Xpath,然后可以将路径粘贴到模块中硒库。真的很简单,这是一个关于硒信息的链接。

http://selenium-python.readthedocs.io/