我正在用Python中的QWebPage构建一个网络爬虫。我的脚本是通过使用evaluateJavaScript("this.click()")
单击各种链接来浏览网站的。然后,在发射信号loadFinished
之后处理得到的内容。你知道吗
class Crawler( QWebPage ):
...
def __init__(self, url):
QWebPage.__init__( self )
self._url = url
...
def crawl( self ):
signal.signal( signal.SIGINT, signal.SIG_DFL )
self.connect( self, SIGNAL( 'loadFinished(bool)' ), self._finished_loading )
...
def _finished_loading( self, result ):
doc = self.mainFrame().documentElement()
link = doc.findFirst("a[id='ANYID']")
link.evaluateJavaScript("this.click()")
这很有效。但是,有一个链接在执行loadFinished
之后没有发出evaluateJavaScript("this.click()")
信号。我已经验证了findFirst
确实找到了正确的元素。我查看了网站的源代码,似乎链接正在执行一些JavaScript,而没有从服务器加载新数据。在这种情况下,loadFinished
不发射吗?或者它应该总是在执行JavaScript之后发出?有没有其他信号我可以用来捕捉我的网页的变化?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐