gpt4 book ai didi

python - 使用 PyQt4 抓取 Javascript 驱动的网页 - 如何访问需要身份验证的页面?

转载 作者:太空狗 更新时间:2023-10-29 20:24:39 25 4
gpt4 key购买 nike

我必须在我们公司的内部网上抓取一个非常非常简单的页面,以便使我们的内部流程之一自动化(返回函数的输出是否成功)。

我找到了下面的例子:

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()

来自 http://blog.sitescraper.net/2010/06/scraping-javascript-webpages-in-python.html它几乎是完美的。我只需要能够提供身份验证即可查看页面。

我一直在查看 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)

最佳答案

我想通了。这是我最终得到的,以防它可以帮助其他人。

#!/usr/bin/python
# -*- coding: latin-1 -*-
import sys
import base64
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from PyQt4 import QtNetwork

class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)

username = 'username'
password = 'password'

base64string = base64.encodestring('%s:%s' % (username, password))[:-1]
authheader = "Basic %s" % base64string

headerKey = QByteArray("Authorization")
headerValue = QByteArray(authheader)

url = QUrl(url)
req = QtNetwork.QNetworkRequest()
req.setRawHeader(headerKey, headerValue)
req.setUrl(url)

QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)


self.mainFrame().load(req)
self.app.exec_()

def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()

def main():
url = 'http://www.google.com'
r = Render(url)
html = r.frame.toHtml()

关于python - 使用 PyQt4 抓取 Javascript 驱动的网页 - 如何访问需要身份验证的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com