Наличие проблемы с политикой безопасности контента с scrapy и splash

Что я делаю

  1. Google для некоторых конкретных ссылок
  2. Войти на linkedin.com (успешно)
  3. Пересмотреть домашнюю страницу (здесь не получается)
  4. Извлеките желаемую информацию из ссылок, которые я гуглил на первом шаге.

Мой бот-робот не работает на шаге 3. Итак, мои вопросы: есть ли способ обойти эту политику безопасности контента? Если его, пожалуйста, поделитесь своими мыслями подробно спасибо.

Google указывает мне на одну из связанных с этим проблем - заголовок CSP и Eval Issue, но это бесполезно, так как не содержит никаких подробностей о настройке прокси.

2017-12-29 10:59:47 [scrapy_splash.middleware] ВНИМАНИЕ: Неверный запрос к Splash: {u'info': {u'source': u'[строка "..."]', u'message': u'Lua error: [string "..."]:32: ошибка JavaScript: EvalError: отказано в оценке строки как JavaScript, так как \'unsafe-eval\' не является допустимым источником сценария в следующей политике безопасности содержимого директива: "script-src \'report-sample\' \'sha256-[redacted...]=\' \'unsafe-inline\' static.licdn.com sclnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com https://www.linkedin.com/voyager/service-worker-push.js https://platform.linkedin.com/js/analytics.js static-exp1.licdn.com static- exp2.licdn.com scexp1.licdn.com scexp2.licdn.com static-lcdn.licdn.com sclcdn.licdn.com https://www.linkedin.com/sc/ https://www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager/abp-detection.js". \ n ', u'type ': u'LUA_ERROR', u'line_number ': 32, u'error': u'JavaScript error: EvalError: отказано в ev измените строку как JavaScript, потому что \'unsafe-eval\' не является допустимым источником сценария в следующей директиве политики безопасности содержимого: "script-src \ 'report-sample \' \ 'sha256- [redacted...] = \ '\' unsafe-inline \ 'static.licdn.com sclnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com https://www.linkedin.com/voyager/service-worker-push.js https://platform.linkedin.com/js/analytics.js static-exp1.licdn.com static-exp2.licdn.com scexp1.licdn.com scexp2.licdn.com static-lcdn.licdn.com sclcdn. licdn.com https://www.linkedin.com/sc/ https://www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager/abp-detection.js". '}, u'type': u'ScriptError ', u'description': u'Ошибка произошла при выполнении сценария Lua ', u'error': 400} 2017-12-29 10:59:47 [scrapy.core.engine] ОТЛАДКА: Сканировано (400) https://www.linkedin.com/feed/ через http://localhost:8050/execute> (реферер: нет) 2017-12-29 10:59:47 [scrapy.spidermiddlewares.httperror] ИНФОРМАЦИЯ: Игнорирование ответа <400 https://www.linkedin.com/feed/>: код состояния HTTP не обрабатывается или не разрешен

1 ответ

Мы рекомендуем использовать Selenium для этого проекта. LinkedIn в основном генерируется JavaScript. Таким образом, это заняло бы огромное количество времени, и это вызвало бы множество проблем в дальнейшем. Кроме того, количество страниц, которые вы можете почистить из LinkedIn за 24 часа, составляет ~1000, поэтому для такого количества страниц действительно нет необходимости использовать Scrapy, достаточно Selenium.

Для получения более подробной информации о том, как сканировать и обрабатывать LinkedIn с помощью Selenium, ознакомьтесь с соответствующим разделом этого курса, Scrapy: Мощная веб-очистка и сканирование с помощью Python.

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