Scrapy爬虫教程一 Windows下安装Scrapy的方式和问题总结
Scrapy爬虫教程二 浅析最烦人的反爬虫手段
Scrapy爬虫教程三 详细的Python Scrapy模拟登录知乎
Scrapy爬虫教程四 Scrapy+Selenium有浏览器界面模拟登录知乎
Scrapy爬虫教程五 爬虫部署
之前单独使用Scrapy来模拟登录了知乎,今天在这里结合Selenium来模拟JavaScript(也就是模拟人点击和输入)来模拟登陆知乎,这篇文章中只使用了Selenium进行有界面的模拟操作。先来介绍几个概念:
Phantomjs
作为一个基于webkit内核的没有UI界面的浏览器,看到这里还有一些神秘感,大家就把这个当做一个浏览器就好了。而其中的一些点击、翻页等操作则由代码实现。Phantomjs提供javascript API接口,即我们可以通过js与webkit内核交互。
关于Phantomjs的详细介绍大家可以关注这篇文章:blog.csdn.net/tengdazhang770960436/article/details/41320079
Selenium
作为一个用于Web应用程序测试的工具,其测试直接运行在浏览器中,框架底层使用JavaScript模拟真实用户对浏览器的操作,从终端用户的角度测试应用程序。将Selenium与Phantomjs联系起来,便是我们可以通过使用Selenium操作Phantomjs访问网页以获得js生成后的网页。
有好多文章介绍了在Scrapy工程中,建立中间件,在中间件中使用Selenium来请求数据,并对返回的结果进行包装再返回到爬虫文件对应的方法中(也就是爬虫文件的方法中的response其实是在中间件中Selenium获得数据driver.page_source),针对这种形式在这里先不说明了。
简单的概念已经介绍完了,下面开始上代码,老规矩,依然是上图片:
亲测有效,这回可以肆无忌惮的借用数据啦,这里提醒一下知乎的反爬虫啊,User-Agent和IP代理池的使用,之后我也会有介绍的。