Я пытаюсь использовать Pyside для рендеринга HTML-кода, созданного с помощью веб-страницы, а затем использовать этот html для webscraping. Я начал использовать this quick example, но результаты очень несовместимы.Почему QtWebkit для python не загружает большинство веб-страниц?
Проблема в том, что некоторые страницы работают отлично, но другие весят бесконечно. И я не говорю о том, чтобы уйти через несколько секунд, я позволил своему сценарию работать в течение нескольких часов в разное время, и никаких успехов не предпринимается.
Мой текущий код выглядит следующим образом:
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished[bool].connect(self.end)
self.mainFrame().load(url)
self.app.exec_()
def end(self, result):
print 'end'
self.finalFrame = self.mainFrame()
self.app.quit()
r = Render('http://pyside.github.io/docs/pyside/PySide/QtWebKit/index.html')
print r.finalFrame.toHtml().encode('ascii', 'ignore')
print 'done'
Эта страница работает, как и страницы, указанные в this answer, но большинство других ('https://www.google.ca/', 'https://webscraping.com') нет.
Как загрузить эти страницы?
Проблема должна быть в конце, потому что у меня нет проблем с загрузкой каких-либо из этих веб-страниц. Таким образом, это действительно просто дубликат вашего другого вопроса по этому вопросу, если у вас нет какой-то важной новой информации для добавления. Попробовали загрузить эти URL-адреса с помощью другого метода, например [urllib2] (https://docs.python.org/2/library/urllib2.html#module-urllib2)? – ekhumoro
Да, я могу загрузить их с помощью urllib2, и он работает правильно. В адресах, о которых я упоминал, никогда не загружается или занимает дольше 6 часов (пока). Из того, что я читаю, возможно, что это может быть ошибка SSL, но ни одна из предложенных исправлений, которую я нашел, не может быть реализована по различным причинам (я не использую сокеты, модуль QSslConfiguration не может быть импортирован и т. Д.) – GreySage
Can укажите, какие версии PySide и Qt4 вы используете, и на какой платформе? Кроме того, убедитесь, что вы проверяете код на стандартной консоли, а не на IDE или отладчике. – ekhumoro