Сессия Dryscrape не может загрузить ни один сайт

Я установил dryscrape на pythonanywhere.com. Но сессия var не может загрузить ни один сайт, почему?

import dryscrape
# as in demo: http://dryscrape.readthedocs.io/en/latest/usage.html#first-demonstration
dryscrape.start_xvfb() 

sess = dryscrape.Session()
sess.visit('https://www.pythonanywhere.com/')

Ошибка результата:

sess.visit('https://www.pythonanywhere.com/')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/igorsavinkin/.local/lib/python3.5/site-packages/dryscrape/session.py", line 33, in visit
    return self.driver.visit(self.complete_url(url))
  File "/home/igorsavinkin/.local/lib/python3.5/site-packages/webkit_server.py", line 235, in visit
    self.conn.issue_command("Visit", url)
  File "/home/igorsavinkin/.local/lib/python3.5/site-packages/webkit_server.py", line 520, in issue_command
    return self._read_response()
  File "/home/igorsavinkin/.local/lib/python3.5/site-packages/webkit_server.py", line 530, in _read_response
    raise InvalidResponseError(msg)
webkit_server.InvalidResponseError: {"class":"InvalidResponseError","message":"Unable to load URL: https://www.pythonanywhere.com/ because 
of error loading https://www.pythonanywhere.com/: Unknown error"}

Независимо от того, какой сайт я посещаю сессию из белого списка, проблема одна и та же.

Я прочитал о предварительных условиях установки Dryscrape:

Перед установкой dryscrape вам необходимо установить программное обеспечение, которое зависит от:

  • Qt, QtWebKit
  • LXML
  • зернышко
  • xvfb_ (необходимо, только если другой X-сервер недоступен)

Так что ни Qt ни QtWebKit входят в число стандартных модулей pythoneverywhere...

Когда я пытался установить его, результатом была ошибка (то же самое с QtWebKit)

$ pip install --user Qt
Collecting Qt
  Could not find a version that satisfies the requirement Qt (from versions: )
No matching distribution found for Qt

Установочный файл dryscrape, setup.py:

from distutils.core import setup, Command

setup(name='dryscrape',
      version='0.9.1',
      description='a lightweight Javascript-aware, headless web scraping library for Python',
      author='Niklas Baumstark',
      author_email='niklas.baumstark@gmail.com',
      license='MIT',
      url='https://niklasb.github.com/dryscrape',
      packages=['dryscrape', 'dryscrape.driver'],
      requires=['webkit_server', 'lxml'],
      )

Любая помощь заметна...

1 ответ

Решение

Разработчик PythonAnywhere здесь - к сожалению, dryscrape зависит от WebKit, а WebKit не работает с нашей системой виртуализации. Если вам нужно выполнить очистку веб-страниц с помощью браузера, который может обрабатывать JavaScript, вы можете использовать selenium и Firefox - больше информации в нашем блоге. Тем не менее, имейте в виду, что у нас только Firefox версии 17 - более поздние проблемы имеют те же проблемы, что и WebKit.

Другие вопросы по тегам