python面试题之python中爬虫框架或模块的区别
数据分析师要学什么课程 有哪些内容
python中爬虫框架或模块的区别,我们在python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些。
(1)爬虫框架或模块
python自带爬虫模块:urllib、urllib2;
第三方爬虫模块:requests,aiohttp;
爬虫框架:Scrapy、pyspider。
(2)爬虫框架或模块的优缺点
urllib和urllib2模块都用于请求URL相关的操作,但他们提供了不同的功能。urllib2模块中urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象时候,并以此可以来设置一个URL的headers),且只接收一个url;urllib中有urlencode,而urllib2中没有。因此,开发人员在实际开发中经常会将urllib与urllib2一起使用。
requests是一个HTTP库,它仅仅用于发送请求。对于HTTP请求而言,request是一个强大的库,可以自己处理下载、解析,灵活性更高,高并发与分布式部署也非常灵活,对于功能可以更好实现。
aiohttp是一个基于python3的asyncio携程机制实现的一个http库。相比requests,aiohttp自身就具备了异步功能。但只能在python3环境中使用。
Scrapy是封装起来的框架,它包含了下载器、解析器、日志及异常处理,是基于多线程的,采用twisted的方式处理。对于固定单个网站的爬取开发,Scrapy具有优势;对于多网站爬取,并发及分布式处理方面,Scrapy不够灵活,不便调整与扩展。
Scrapy具有以下优点:
- ·Scrapy是异步的;
- ·采取可读性更强的XPath代替正则表达式;
- ·强大的统计和log系统;
- ·可同时在不同的URL上爬行;
- ·支持shell方式,方便独立调试;
- ·方便写一些统一的过滤器;
- ·通过管道的方式存入数据库。
Scrapy是基于python实现的爬虫框架,扩展性比较差。
Pyspider是一个重量级的爬虫框架。我们知道Scrapy没有数据库集成、分布式、断点续爬的支持、UI控制界面等等,若Scrapy想要实现这些功能,需要自行开发。Pyspider已经集成了前面这些功能,也正因如此,Pyspider的扩展性太差,学习难度较大。
数据分析师要学什么课程 有哪些内容
数据的获取需要sql工具,Excel可以应对小型数据的分析。还需要学习r语言、Python、spss等数据,这样才能够提供数据的挖掘能力。当然还需要学习数据库的内容,将数据纳入数据库的本领也需要掌握,学好了这些才能够做好数据分析。
数据分析师要学会什么技能
数据分析师要学会Excel、掌握SQL Server或者Oracle的SQL语句、掌握可视化工具。
首先是Excel,貌似这个很简单,其实未必。Excel不仅能够做简单二维表、复杂嵌套表,能画折线图、Column chart、Bar chart、Area chart、饼图、雷达图、Combo char、散点图、Win Loss图等,而且能实现更高级的功能。
包括透视表(类似于BI的多维分析模型Cube),以及Vlookup等复杂函数,处理100万条以内的数据没有大问题。最后,很多更高级的工具都有Excel插件,例如一些AI Machine Learning的开发工具。
掌握SQL Server或者Oracle的SQL语句,虽然你是业务分析师,但如果取数据能少依赖于IT人员和IT工具(比如BI的多维分析模型,有时候并不能获取你想要的数据),对于做业务分析,无疑是如虎添翼,我曾经见过华为的会计能写七层嵌套的SQL语句,很吃惊。
包括join、group by、order by、distinct、sum、count、average,各种统计函数等。
掌握可视化工具,比如BI,如Cognos、Tableau、FineBI等,具体看企业用什么工具,像我之前用的是FineBI。
这些工具做可视化非常方便,特别是分析报告能含这些图,一定会吸引高层领导的眼球,一目了然了解,洞察业务的本质。另外,作为专业的分析师,用多维分析模型Cube能够方便地自定义报表,效率大大提升。
数据分析师要具备的基本知识
第一,数据思维,对数据敏感性要高,建立起兴趣,自己要刻意练习。
第二,业务能力,多关注行业分析报告,cda有很多原创文章。
第三,熟练使用数据分析工具,比如excel sql语言、spss python sas等,建议精通1-2门就好,以后需要其他工具工作中再学习。
第四,扎实统计和数学基础,比如微积分,线性代数 模型有聚类,关联分析、SVM、神经网络、贝叶斯网络、朴素贝叶斯、随机森林等。