擅长:python、mysql、java
<h2>问题</h2>
<p>如果您的scraper无法访问您可以使用浏览器开发工具看到的数据,那么它将无法看到与您的浏览器相同的数据。你知道吗</p>
<p>这可能意味着两件事之一:</p>
<ul>
<li>你的刮刀被认为是这样,并提供不同的内容</li>
<li>一些内容是动态生成的(通常通过javascript)</li>
</ul>
<h2>通用解决方案</h2>
<p>解决这两个问题最直接的方法是使用实际的浏览器。你知道吗</p>
<p>有许多无头浏览器可用,您可以根据自己的需要选择最好的。<br/>
对于scrapy,<a href="https://github.com/scrapy-plugins/scrapy-splash" rel="nofollow noreferrer">scrapy-splash</a>可能是最简单的选择。你知道吗</p>
<h2>更专业的解决方案</h2>
<p>有时,您可以找出这种不同行为的原因,然后更改代码。<br/>
这通常是更有效的解决方案,但可能需要您做更多的工作。你知道吗</p>
<p>例如,如果您的scraper被重定向,那么您可能只需要使用不同的用户代理字符串,传递一些附加的头,或者减慢您的请求。你知道吗</p>
<p>如果内容是由javascript生成的,那么您可以查看页面源代码(<code>response.text</code>或在浏览器中查看源代码),并找出发生了什么。你知道吗</p>
<p>之后,有两种可能:</p>
<ul>
<li>以另一种方式提取数据(就像gangabass对上一个问题所做的那样)</li>
<li>复制javascript在spider代码中所做的事情(比如发出额外的请求,如当前示例中所示)</li>
</ul>