Теперь я выполняю задачу систематического изложения содержимого из списка курсов, который, как представляется, отображается javascript. Я выполнил несколько сценариев, используя PyQt4 в Интернете, но не смог (что я скопировал ниже). Точнее, сценарий работает на некоторых сайтах с javascript, который загружает контент с нажатием на его конкретную ссылку. Тем не менее, следующий веб-сайт (ouhk, ссылка, которую я скопировал ниже в сценарии), похоже, не содержит ссылки для направления пользователей на конкретный контент, а именно: информация о программе, структура программы и плата и т. Д. Вместо этого он использует контейнеры тегов и FTP для хранения и загрузки информации (которую я нашел из ее исходного кода).Веб-скребок с содержимым Javascript с использованием Python PyQt
Мне интересно, есть ли способ изменить следующий скрипт, чтобы я мог очистить этот контент с помощью 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
Вам также необходимо скачать драйвер хрома, посмотрите на YouTube для этого есть некоторые большие видео для настройки это! – BLang
Спасибо за комментарии. Я также использую селен в некоторых других задачах. Но недостатком этого я считаю, что вам нужно дождаться загрузки страницы, прежде чем получить исходный код, что значительно замедлит процесс. Вот почему я обычно использую Beautifulsoup в веб-слоте. Или мне что-то не хватает? Это способ использования селена путем получения исходного кода страницы без полной загрузки страницы? –
Хм, что я не уверен в этом с точки зрения селена (скорость обычно не проблема для моих целей), я не понимал, что BS может получить источник страницы без загрузки страницы. Извините, я не мог с этим поделать, но это отличная возможность поблагодарить за это! – BLang