擅长:python、mysql、java
<p>解析动态内容的一般解决方案是首先使用能够运行Javascript的东西(例如<a href="http://phantomjs.org/" rel="nofollow noreferrer">http://phantomjs.org/</a>)来获得呈现的dom/html,然后保存html并将其提供给解析器。在</p>
<p>这也有助于绕过一些基于js的保护器。在</p>
<p><code>phantomjs</code>是一个单独的可执行文件,它将加载一个uri作为一个真正的浏览器,并对所有JS进行评估。
您可以通过<code>subprocess.call([phantomJsPath, jsProgramPath, url, htmlFileToSave])</code>从Python运行它</p>
<p>对于jsProgram示例,可以检查<a href="https://github.com/ariya/phantomjs/blob/master/examples/rasterize.js" rel="nofollow noreferrer">https://github.com/ariya/phantomjs/blob/master/examples/rasterize.js</a></p>
<p>要从js程序保存html,请使用<code>fs.write(htmlFileToSave, page.content, "w");</code></p>
<p>我试过这种方法矮人网它是有效的,尽管你应该弄清楚如何将它插入你的<code>scrapy</code>管道中。在</p>
<p>对于您的示例,您可以尝试“手动”解析提供的javascript,以获取加载实际页面所需的cookie详细信息。尽管Sucuri算法随时可能改变,任何基于cookie或js解码的解决方案都会被破坏。在</p>