selenium|selenium 不加载图片设置 selenium集成到Scrapy

selenium不加载图片 selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
selenium不加载图片代码 selenium集成到Scrapy

1. 自定义一个middlewares
selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
自定义的middleware

2. 在settings中设置middlewares
selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
settings中的设置

3. 但是每次启动都会启动Chrome,如何解决这个问题呢,在这里,我们把browser写进类里,这样每次请求都是同一个browser
selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
设置browser

4. 但是又出现了一个问题,在爬虫关闭的时候不会自动关掉Chrome,这是一个很大的隐患。如何解决这个问题呢?
我们可以通过吧browser放到spider中,每个spider一个browser,有利于并发。使用信号量,当spider退出时使用browser.close()
selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
spider

selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
middlewares

5. 值得说的是,scrapy是一个异步的请求,而上面使用Chrome是同步的,使性能下降,如何使之也变成异步的呢?实现方法是重写一个middlewares,具体不在这里讨论,有兴趣的读者可以自己到Githut上查找相关的方法。


6. Chrome是必须有界面才能访问,那么如何无界面访问呢?
【selenium|selenium 不加载图片设置 selenium集成到Scrapy】首先,要安装一个pyvirtualdisplay,好像只有在Linux下才行,Windows下不支持
selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
安装pyvirtualdisplay selenium|selenium 不加载图片设置 selenium集成到Scrapy
文章图片
代码示例

    推荐阅读