내부 프로세스 중 하나를 자동화하기 위해 (회사의 인트라넷에있는 매우 간단한 페이지를 긁어 내야 함수의 출력을 성공 여부로 반환해야합니다). http://blog.sitescraper.net/2010/06/scraping-javascript-webpages-in-python.html에서PyQt4로 자바 스크립트 기반 웹 페이지 긁기 - 인증이 필요한 페이지에 액세스하는 방법?
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
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://sitescraper.net'
r = Render(url)
html = r.frame.toHtml()
과 거의 완벽 :
나는 다음과 같은 예를 발견했다. 페이지를 볼 때 인증을 제공 할 수 있어야합니다.필자는 PyQt4에 대한 문서를 살펴 봤는데, 많은 것이 내 머리 위로 있다는 것을 인정할 것이다. 누구든지 도울 수 있다면, 고맙겠습니다.
편집 : 불행히도 gruszczy의 방법이 저에게 효과적이지 않았습니다. 나는 urllib2를 통해 비슷한 일을했을 때, 나는 다음과 같은 코드를 사용하고는했다 ...
username = 'user'
password = 'pass'
req = urllib2.Request(url)
base64string = base64.encodestring('%s:%s' % (username, password))[:-1]
authheader = "Basic %s" % base64string
req.add_header("Authorization", authheader)
handle = urllib2.urlopen(req)
코멘트 영역의 코드 형식을 올바르게 지정하는 방법이 확실하지 않으므로 위 질문을 편집했습니다. – merph
그렇다면 어떻게해야할지 모를까 봐 걱정됩니다. -/ – gruszczy
어쨌든 멋지 네요. 너는 나를 올바른 길로 인도했다. – merph