内容安全策略问题与scrapy和splash

时间:2017-12-29 06:35:58

标签: scrapy scrapy-splash splash-js-render

我正在做的是

  1. Google提供了一些特定于链接的链接
  2. 登录linkedin.com(成功)
  3. 重新访问主页(此处失败)
  4. 从我在第一步中搜索的链接中提取一些所需的信息
  5. 我的scrapy bot在第3步失败了。所以我的问题是,有没有办法绕过这个内容安全策略?如果它请详细分享您的想法谢谢。

    谷歌指出我的一个相关问题是CSP header  和Eval Issue,这是没有用的,因为它没有提供有关代理设置的任何细节。

      

    2017-12-29 10:59:47 [scrapy_splash.middleware]警告:请求不好   Splash:{u' info':{u' source&#39 ;: u' [string" ..."]',u' message& #39;:你' Lua   错误:[string" ..."]:32:JavaScript错误:EvalError:拒绝   将字符串评估为JavaScript,因为\' unsafe-eval \'不是   允许的以下内容安全策略中的脚本源   指令:" script-src \' report-sample \'   \' sha256- [删除...] = \'   \'不安全直插\' static.licdn.com s.c.lnkd.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 s.c.exp1.licdn.com s.c.exp2.licdn.com   static-lcdn.licdn.com s.c.lcdn.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'键入':   你' LUA_ERROR',你' line_number':32,你'错误':你' JavaScript错误:   EvalError:拒绝将字符串评估为JavaScript,因为   \'不安全-EVAL \'以下是不允许的脚本源   内容安全政策指令:" script-src \' report-sample \'   \' sha256- [删除...] = \'   \'不安全直插\' static.licdn.com s.c.lnkd.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 s.c.exp1.licdn.com s.c.exp2.licdn.com   static-lcdn.licdn.com s.c.lcdn.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'键入':   你的ScriptError',u'描述':执行Lua时发生了错误   脚本',u'错误':400} 2017-12-29 10:59:47 [scrapy.core.engine]   调查:抓取(400)https://www.linkedin.com/feed/ via   http://localhost:8050/execute> (推荐人:无)2017-12-29 10:59:47   [scrapy.spidermiddlewares.httperror]信息:忽略响应< 400   https://www.linkedin.com/feed/>:未处理HTTP状态代码或   不允许

1 个答案:

答案 0 :(得分:0)

我们建议在此项目中使用 Selenium 。 LinkedIn主要是由JavaScript生成的。因此需要花费大量时间,这将导致很多问题进一步发生。此外,您可以在24小时内从LinkedIn中获取的页数大约为1000,因此实际上不需要使用Scrapy来获取此页数,Selenium就足够了。

有关如何使用Selenium抓取和抓取LinkedIn 的详细信息,请查看本课程的相关部分Scrapy: Powerful Web Scraping & Crawling with Python