擅长:python、mysql、java
<p>首先,从Flicker这样的网站上抓取400万条搜索结果可能是不道德的。网络爬虫应该尽最大努力通过最小化服务器上的负载来尊重他们正在从中爬虫的网站。在短时间内有400万个请求可能会使你的IP被禁止。如果你使用代理,你可以绕过这一点,但再次-高度不道德。你也会遇到版权问题的风险,因为flicker上的很多图像都是受版权保护的</p>
<p>如果你要继续这样做,你就必须使用Scrapy和Scrapy Selenium组合。Scrapy非常适合运行并发请求,这意味着您可以同时请求大量图像。您可以在此处了解有关Scrapy的更多信息:<a href="https://docs.scrapy.org/en/latest/" rel="nofollow noreferrer">https://docs.scrapy.org/en/latest/</a></p>
<p>工作流程如下所示:</p>
<ol>
<li>Scrapy向网站请求html解析,通过它查找class='overlay no outline'的所有标记</li>
<li>Scrapy同时向每个url发出请求。这意味着URL不会一个接一个地跟随,而是并排跟随</李>
<li>当图像返回时,它们会被添加到数据库/存储空间中</li>
<li>Scrapy(可能是Selenium)滚动无限滚动页面并重复,而不重复已检查的图像(保留上次扫描项目的索引)</李>
</ol>
<p>这就是Scrapy所需要的,但我强烈建议不要尝试刮取400万个元素。您可能会发现,您遇到的性能问题不值得您花费时间,特别是因为这应该是一次学习经历,您可能永远不需要刮取那么多元素</p>