我现在正在执行从一个似乎是由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
答案 0 :(得分:0)
了解使用selenium Library!我用这个库搞砸了多个网站。人们说它很慢,但为了我的目的,它很有效。
此外,如果你有点新的网页抓取,请查看Xpath用于抓取难以获得的元素。使用Xpath,你需要在chrome浏览器中执行的操作是右键单击页面,insspect元素,展开所有标记,然后右键单击要抓取的标记并单击复制Xpath,然后可以将路径粘贴到模块中硒库。真的很简单,这是一个关于硒信息的链接。