这篇文章主要是从Python编程语言生态系统的角度编写的。偶注意到,Selenium已经成为非常流行地用来抓取从网页上的数据,所以chromedriver也是必备的。是的,您可以使用Selenium进行网络抓取,但偶觉得这不是一个好主意。
偶个人也认为,教导如何使用Selenium进行网页抓取的文章为日常使用工具进行网页抓取提供了一个不好的例子。
1.为什么不应该使用Selenium进行网络抓取首先,Selenium不是Web抓取工具。它是“用于自动化Web应用程序以进行测试”,该声明来自Selenium主页。其次,在Python中,有一个更好的工具Scrapy开源Web爬网框架。精明的读者会问:“ 与Python相比,使用Scrapy有什么好处?”,您将获得速度和很多速度,开发速度和Web抓取时间的速度,而且代码更干净些。
有一些技巧可以使Selenium Web抓取速度更快,如果使用Scrapy,则不会出现此类问题,而且速度更快。
仅仅因为这些文章的存在证明了(至少对偶而言)人们使用了错误的工具进行工作,例如“ 当您唯一的工具是锤子时,一切看起来都像钉子 ”。
2.你什么时候该用Selenium偶个人仅使用Selenium进行网页测试。偶会尝试使用它来自动化Web应用程序(如果没有其他选择),但是到目前为止,偶还没有这种用例。使用Selenium作为Web抓取工具时,偶可以看到的唯一例外是,如果要抓取的网站正在使用JavaScript来获取/显示需要抓取的数据,而且它防爬虫技术很厉害,需要你模仿浏览器去捕获,这时候用Selenium是个明智的选择。
3.用什么代替Selenium来进行网络抓取如您所料,偶的建议是使用Scrapy。偶选择Scrapy是因为偶花了更少的时间来开发Web抓取程序(Web Spider),并且执行时间很快。偶发现由于Scrapy Shell和缓存,Scrapy的开发速度更快。在执行过程中,由于可以同时完成多个请求,因此速度很快,这意味着数据传递将不会按照请求的顺序进行,只是您在调试时不会感到困惑。
4.总结但存使用Selenium进行Web抓取是不足够的,因为不是生产系统和学习/爱好,这很好。
虽然Selenium很容易启动,您可以在屏幕上实时看到正在隐藏的内容,这对于开始学习/学习网络抓取的人们来说是一个巨大的好处,并且在出现这种情况时要拥有这种早期道德观念很重要。
但是偶确实认为所有使用Selenium进行Web抓取的文章和教程都应声明免于现实生活中不使用Selenium(如果您每天需要抓取100K页面,则不可能在单个Selenium实例中做到这一点)。
要开始使用Scrapy很难,您必须编写XPath选择器并查看要调试的HTML页面的源代码并不好玩,但是如果您想快速进行网络抓取,那就是需要花多点时间研究技术,毕竟因地制宜。
python源文件,python 遍历属性,python3网络编程基础,python怎么表示方差,python怎么快捷井号,线上 python,python reser,eletron+python,centos python 位数,python pyh画表,python 文件行读取python源文件,python 遍历属性,python3网络编程基础,python怎么表示方差,python怎么快捷井号,线上 python,python reser,eletron+python,centos python 位数,python pyh画表,python 文件行读取python源文件,python 遍历属性,python3网络编程基础,python怎么表示方差,python怎么快捷井号,线上 python,python reser,eletron+python,centos python 位数,python pyh画表,python 文件行读取li css列表样式,css点样式,css带li图标,css网页炫酷效果,css 京东优惠券,css前端架构师培训,社区css