У меня возникла проблема с попыткой сканирования страниц, обработанных JavaScript.Python Crawling Pastebin (JavaScript rendered webpages)
Я использую питон-qt4 модуль, после этого урока: https://impythonist.wordpress.com/2015/01/06/ultimate-guide-for-scraping-javascript-rendered-web-pages/
В учебнике, все прекрасно работает с примером страницы: http://pycoders.com/archive
Но я пытаюсь это с Pastebin, с этим URL:
http://pastebin.com/search?q=ssh
То, что я пытаюсь, чтобы получить все ссылки, чтобы нажимать на них, а также быть в состоянии следовать страницы (я не знаю, что я пока еще, возможно, Scrapy, но я хочу взглянуть на другие варианты).
Проблема заключается в том, что я не в состоянии извлечь ссылки, это мой код:
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from lxml import html
#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://pastebin.com/search?q=ssh'
r = Render(url)
result = r.frame.toHtml()
formatted_result = str(result.toAscii())
tree = html.fromstring(formatted_result)
archive_links = tree.xpath('//a[@class="gs-title"]/@data-ctoring')
for i in archive_links:
print i
Результат: я не получаю ничего.
Это решение довольно хорошо. Как я могу перейти на все 10 страниц и извлечь URL-адреса? В принципе, как щелкнуть вещи. Большое спасибо – aDoN
Кстати, я не уверен, что делает эта строка: 'wait.until (EC.visibility_of_element_located ((By.CSS_SELECTOR, .gsc-result-info"))) ' – aDoN
@aDoN считают создание отдельный вопрос для последующей проблемы. Эта строка помогает подождать, пока появится определенный элемент - см. Http://selenium-python.readthedocs.org/waits.html#explicit-waits. Благодарю. – alecxe