python爬虫中requests和selenium的比较

1,701次阅读
没有评论

python爬虫中requests和selenium的比较

在教小伙伴们获取数据的时候,小伙伴们会发现小编对于requests的介绍比较多,而selenium只是简单地介绍了一下。有的小伙伴学习的积极性比较高,看到selenium后就想要深入的了解如何去使用。这里小编把requests和selenium进行一个比较,相信大家看完后就知道为什么小编着重于教大家使用requests了。

 

requests代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import requests
 
r = requests.get('https://api.github.com', auth=('user', 'pass'))
 
print r.status_code
print r.headers['content-type']

requests代码部分简单易懂。

 

selenium它是用于自动化Web应用程序的测试目的,但肯定不仅限于此。

对于一般网站来说scrapy、requests、beautifulsoup等都可以爬取,但是有些信息需要执行js才能显现,而且你肉眼所能看到的基本都能爬取下来,在学习中遇到了,就记录下来方便以后查看。

webdrive是selenium中一个函数:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('网址')

 

其中PhantomJS同时可以换成Chrome、Firefox、Ie等等,但是PhantomJS是一个无头的浏览器,运行是不会跳出相应的浏览器,运行相对效率较高。在调试中可以先换成Chrome,方便调试,最后再换成PhantomJS即可。

 

说一说 Selenium 的缺点:

1、速度慢。每次运行爬虫都打开一个浏览器,如果没有设置,还会加载图片、JS等等一大堆东西;

2、占用资源太多。有人说,把Chrome换成无头浏览器PhantomJS,原理都是一样的,都是打开浏览器,而且很多网站会验证参数,如果对方看到你是以PhantomJS去访问,会BAN掉你的请求,然后你又要考虑更换请求头的事情,事情复杂程度不知道多了多少,为啥学Python?因为Python简单啊,如果有更快、更简单的库可以实现同样的功能,为什么不去使用呢?

3、对网络的要求会更高。 Selenium 加载了很多可能对您没有价值的补充文件(如css,js和图像文件)。 与仅仅请求您真正需要的资源(使用单独的HTTP请求)相比,这可能会产生更多的流量。

4、爬取规模不能太大。

5、难。学习Selenium的成本太高,

通过比较我们可以看出,requests在代码方面简洁而且操作难度不大,相信很多小伙伴已经上手requests,而selenium的不足之处比较多,所以不推荐大家用来爬取数据。

 

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-05-21发表,共计1175字。
新手QQ群:570568346,欢迎进群讨论 Python51学习