擅长:python、mysql、java
<p>始终从查看源检查页面的源。从源代码看,它似乎不包含您要查找的元素。相反,它是用javascript动态创建的</p>
<p>您可以使用selenium来清除这些站点。但是硒也有它的警告。它是同步的</p>
<p>由于您使用的是scrapy,因此更好的选择是使用<strong>scrapy splash</strong>软件包<strong>Splash</strong>呈现javascript并返回完全呈现的html页面,您可以使用xpath或css选择器轻松抓取该页面。请记住,您需要在一个<strong>docker容器中运行Splash服务器。并像代理服务器一样使用它来呈现javascript</p>
<pre><code>docker pull scrapinghub/splash
docker run -d -p 8050:8050 memory=1.5G restart=always scrapinghub/splash maxrss 1500 max-timeout 3600 slots 10
</code></pre>
<p>这里是文档的链接<a href="https://splash.readthedocs.io/en/stable/" rel="nofollow noreferrer">https://splash.readthedocs.io/en/stable/</a></p>
<p>你的脚本看起来像这样。您可以发出如下请求,而不是<code>scrapy.Request</code></p>
<pre class="lang-py prettyprint-override"><code>from scrapy_splash import SplashRequest
yield SplashRequest(url=url, callback=self.parse, meta={})
</code></pre>
<p>然后你就可以走了</p>