python爬虫大数据挖掘

2016-09-07 22:11:06 BaiHuaXiu123 阅读数 46311

互联网创业离不开数据,如果能自己做个数据爬虫,那岂不是一件很美好的事情吗?
其实自己做数据挖掘不是梦,学点Python的基本功能,5步就能让你成为一个爬虫高手!

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2018-09-24 00:09:47 student241 阅读数 1220

https://www.bilibili.com/video/av22571713?p=17 

urlretrieve函数:直接将网络上的网页爬取到本机上

urlcleanup函数:清除上面urlretrieve函数的缓存

getcode:获取网页的状态码(如:200)

geturl:获取网页的网址

网页访问超时设置

 17

urllib.request  无法使用https,需要改成http

网址中出现中文的解决方法:

使用urllib.request.quote()函数

post:

18

19伪装浏览器

 20

 

22代理服务器

23图片爬虫

26

27微信爬虫

 

28  多线程爬虫

29   Scrapy安装

31scrapy命令:全局命令、项目命令

view:

项目命令:

bench:测试本地硬件性能

genspider:在爬虫项目里面创建一个爬虫文件

 scrapy  genspider  -t  basic   weisun(创建的文件名) baidu.com(要爬取的域名,创建后不能更改)

                                   (基于的模板)

测试:

crawl:运行要运行的文件

scrapy crawl weisun

 edit:直接通过编辑器打开文件

parse:

项目创建过程:命令运行的文件目录不能错

要创建的目录下运行:scrapy文件夹

cd  进入已经创建好的项目的目录下:weisun.weisun下

basic是普通爬虫的母版

crawl是自动爬虫的母版

验证:

32

items.py设置要爬取的目标

pipelines.py进行后续处理

设置步骤:

  •   items.py:

 scrapy.Field()语句创建想要的容器

  • pipelines.py:进行想要的后续处理

  • setting.py:相对应的配置

  • wei.py:parse(self.response)函数里面进行

response存储了所有想要的信息

导入items.py里面对应的类

scrapy执行流程:

https://www.cnblogs.com/xxdfly/p/4202868.html

1、Scrapy Engine(Scrapy引擎)

Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流程。

2、Scheduler(调度)

调度程序从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求后返还给他们。

3、Downloader(下载器)

下载器的主要职责是抓取网页并将网页内容返还给蜘蛛( Spiders)。

4、Spiders(蜘蛛)

蜘蛛是有Scrapy用户自己定义用来解析网页并抓取制定URL返回的内容的类,每个蜘蛛都能处理一个域名或一组域名。换句话说就是用来定义特定网站的抓取和解析规则。

蜘蛛的整个抓取流程(周期)是这样的:

  1. 首先获取第一个URL的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用start_requests()方法。该方法默认从start_urls中的Url中生成请求,并执行解析来调用回调函数。
  2. 在回调函数中,你可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也将包含一个回调,然后被Scrapy下载,然后有指定的回调处理。
  3. 在回调函数中,你解析网站的内容,同程使用的是Xpath选择器(但是你也可以使用BeautifuSoup, lxml或其他任何你喜欢的程序),并生成解析的数据项。
  4. 最后,从蜘蛛返回的项目通常会进驻到项目管道。

5、Item Pipeline(项目管道)

项目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几 个特定的次序处理数据。每个项目管道的组件都是有一个简单的方法组成的Python类。他们获取了项目并执行他们的方法,同时他们还需要确定的是是否需要 在项目管道中继续执行下一步或是直接丢弃掉不处理。

项目管道通常执行的过程有:

  1. 清洗HTML数据
  2. 验证解析到的数据(检查项目是否包含必要的字段)
  3. 检查是否是重复数据(如果重复就删除)
  4. 将解析到的数据存储到数据库中

6、Downloader middlewares(下载器中间件)

下载中间件是位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。它提供了一个自定义的代码的方式 来拓展Scrapy的功能。下载中间器是一个处理请求和响应的钩子框架。他是轻量级的,对Scrapy尽享全局控制的底层的系统。

7、Spider middlewares(蜘蛛中间件)

蜘蛛中间件是介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。它提供一个自定义代码的方式来拓展Scrapy 的功能。蛛中间件是一个挂接到Scrapy的蜘蛛处理机制的框架,你可以插入自定义的代码来处理发送给蜘蛛的请求和返回蜘蛛获取的响应内容和项目。

8、Scheduler middlewares(调度中间件)

调度中间件是介于Scrapy引擎和调度之间的中间件,主要工作是处从Scrapy引擎发送到调度的请求和响应。他提供了一个自定义的代码来拓展Scrapy的功能。

三、数据处理流程

Scrapy的整个数据处理流程有Scrapy引擎进行控制,其主要的运行方式为:

  1. 引擎打开一个域名,时蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的URL。
  2. 引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。
  3. 引擎从调度那获取接下来进行爬取的页面。
  4. 调度将下一个爬取的URL返回给引擎,引擎将他们通过下载中间件发送到下载器。
  5. 当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。
  6. 引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。
  7. 蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。
  8. 引擎将抓取到的项目项目管道,并向调度发送请求。
  9. 系统重复第二部后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。

四、驱动器

Scrapy是由Twisted写的一个受欢迎的Python事件驱动网络框架,它使用的是非堵塞的异步处理。

 

 

 

 

 

 

 

 

43数据分析与挖掘相关模块

 44模块的使用

45数据的导入

csv格式:

excel格式:

pda.read_excel("数据文件路径")

mysql格式:

 可以是网页链接

文本文件:txt文件

47   matplotlib的使用

折线图/散点图用plot()函数

 plot()的展现形式默认为折线图,加   'o'   为散点图

展现形式的更改方式:

更改   plot(x,y,展现形式)     中的参数,或者使用scatter()函数

更改点的展现形式会默认以散点图的形式展现,而不会按照折线图

 设置横轴纵轴

随机数

正态分布

 直方图:一般展示每个区间数目出现的频数。用  hist() 方法

numpy模块的        arange(起始数,终止数,步长)

面板分区方法:

 

 

49

51   数据探索和数据清洗

 54   数据集成

 

 

 

 

 

 

 

 

 

2018-05-21 13:11:00 weixin_34050427 阅读数 243

一、python爬虫脑图:

二、python爬虫流程:

三、python数据分析简介

四、python数据预处理方法

五、python数据挖掘

六、数据探索基础

转载于:https://www.cnblogs.com/itbuyixiaogong/p/9066705.html

2018-12-31 13:11:22 itcast_cn 阅读数 3363

Python学习中很重要的一部分就是Python爬虫,同时它也是一个就业方向,不知道小伙伴有没有好的Python爬虫可以看,今天就分享一个Python爬虫教程!

课程简介

该阶段主要是介绍一些数据科学领域用Python语言实现的基础库,如简洁、轻便的数据可视化展示工具Matplotlib,高效的运算工具Numpy,方便的数据处理工具Pandas,为人工智能阶段打基础。

课程特色|亮点

1. 用最快地办法入门数据科学

2. 用最简单方式轻松掌握数据科学基础库

课程内容介绍

1. 学前环境搭建:数据挖掘基础环境安装与使用

a) 库的安装

b) Jupyter Notebook使用

2. Matplotlib

a) 快速上手Matplotlib

b) 折线图与基础绘图功能

c) 散点图

d) 柱状图

e) 直方图

f) 饼图

3. Numpy

a) Numpy的优势

b) 认识ndarray

c) 基本操作

d) ndarray运算

e) 数组间的运算

f) 合并、分割

g) IO操作与数据处理

4. Pandas基础处理

a) Pandas的介绍

b) 基本数据操作

c) DataFrame运算

a) Pandas画图

b) 文件读取与存储

1. Pandas高级处理

a) 缺失值处理

b) 数据离散化

c) 合并

d) 交叉表与透视表

e) 分组与聚合

资源截图:

学习视频:

Python爬虫数据挖掘基础教程

视频:http://yun.itheima.com/course/499.html?stt

链接:https://pan.baidu.com/s/1XZttMYyWTk_gDhhj24adKw   提取码:462a

2018-04-12 10:41:43 valada 阅读数 25400

课程介绍

本课程以一个小项目带你快速上手 Python 爬虫和数据分析,主要分 3 部分:

  • 第 1 部分是 Python 爬虫,主要使用 Urllib 3 和 BeautifulSoup 抓取天猫商城和京东商城胸罩销售数据,并保存到 SQLite 数据库中;
  • 第 2 部分是对抓取的胸罩销售数据进行数据清洗,主要是去除空数据,让数据格式更规范;
  • 第 3 半部分利用 Pandas 对数据进行分析,以及使用 Matplotlib 对分析后的数据进行可视化。

通过一系列分析,可以得到中国女性胸部尺寸(胸围)的标准大小,想知道中国女性最标准的胸围是多少吗?想知道什么颜色的胸罩最畅销吗?想知道 C 罩杯以上的女性喜欢到天猫还是京东购买胸罩吗?答案尽在本课程中。

作者介绍

李宁,欧瑞科技创始人 & CEO,技术狂热分子,IT 畅销书作者,CSDN 特约讲师、CSDN 博客专家,拥有近 20 年软件开发和培训经验。主要研究领域包括 Python、深度学习、数据分析、区块链、Android、Java 等。曾出版超过 30 本 IT 图书,主要包括《Python 从菜鸟到高手》《Swift 权威指南》《Android 开发指南》等。

作者在 GitChat 上的个人主页信息详见这里

课程内容

第01课:分析天猫商城胸罩销售数据

本系列文章会带领大家使用多种技术实现一个非常有趣的项目,该项目是关于胸罩销售数据分析的,是网络爬虫和数据分析的综合应用项目。本项目会从天猫和京东抓取胸罩销售数据(利用 Chrome 工具跟踪 Web 数据),并将这些数据保存到 SQLite 数据库中,然后对数据进行清洗,最后通过 SQL 语句、Pandas 和 Matplotlib 对数据进行数据可视化分析。我们从分析结果中可以得出很多有的结果,例如,中国女性胸部标准尺寸是多少、胸罩上胸围的销售比例、哪个颜色的胸罩最受女性欢迎。

其实关于女性胸部的数据分析已经有很多人做了,例如,Google 曾给出一个全球女性胸部尺寸地图,如图1所示。

enter image description here

图1 Google 的全球女性胸部尺寸分布地图

地图中,红色代表大于 D 罩杯,橙色是 D,黄色 C,蓝色 B,绿色则为 A。从地图上看,中国地区主要集中在蓝色和绿色,也就是主要中国女性胸部罩杯主要以 A 和 B 为主;而全面飘红的俄罗斯女性胸部尺寸全面大于 D 罩杯,不愧是战斗的民族。

再看一下图2所示的淘宝胸罩(按罩杯和上胸围统计)销售比例柱状图。

enter image description here

图2 淘宝胸罩销售比例柱状图(按罩杯和上胸围统计)

根据淘宝数据平台提供的数据显示,在中国,B 罩杯的胸罩销售量最多。在2012年6月14日至7月13日期间,购买最多的胸罩尺寸为 B 罩杯,前9位中,B 罩杯占比达41.45%,说明中国平均胸部大小都在 B 罩杯。其中,又以 75 B 的销量最好,85 B 则在 B 罩杯中相对落后,仅4.09%,C 罩杯则只有8.96%。

其实无论 Google 还是淘宝,给出的数据尽管可能在具体的比例上有差异,但总体的趋势是一样的,也就是说,中国女性胸部尺寸以 B 罩杯为主。销售最好的是 75 B(中国女性的标准胸围),其次是 80 B,85 B 的销售比较不好,因为这个身材对于女性来说,确实有点魁梧了。

前面给出的这些数据都是别人统计的,现在就让我们自己来验证一下,这些数据到底准不准。在本系列文章中,我们选择了天猫和京东两家大电商,多个胸罩品牌,20000条销售记录,利用了数据库和 Pandas 进行统计分析,看看能不能得出与 Google 和淘宝类似的结论。

说干就干,首先需要从马云同学的天猫商城取点数据,取数据的第一步即使要分析一下 Web 页面中数据是如何来的。也就是说数据,数据是通过何种方式发送到客户端浏览器的。通常来讲,服务端的数据会用同步和异步的方式发送。但同步的方式目前大的网站基本上不用了,主要都是异步的方式。也就是说,静态页面先装载完,然后通过 AJAX 技术从服务端获取 JSON 格式的数据(一般都是 JSON 格式的),再利用 JavaScript 将数据显示中相应的 Web 组件上,基本都是思路,区别就是具体如何实现了。天猫和京东的数据基本上没采用什么有意义的反爬技术,所以抓取数据相对比较容易。

《Python 爬虫和数据分析实战》

进到天猫商城(要求使用 Chrome 浏览器,有很方便的调试工具),搜索出“胸罩”商品,然后进入某个胸罩商品页面。浏览商品页面,在页面的右键菜单中点击“检查”菜单项,打开调试窗口,切换到“Network”选项卡,这个选项卡可以实时显示出当前页面向服务端发送的所有请求,以及这些请求的请求头、响应头、响应内容以及其他与调试有关的信息。对于调试和跟踪 Web 应用相当方便。

打开“Network”选项卡后,进到商品评论处,切换到下一页,会看到“Network”选项卡下方出现很多 URL,这就是切换评论页时向服务端新发出的请求。我们要找的东西就在这些 URL 中。至于如何找到具体的 URL,那就要依靠经验了。可以一个一个点击寻找(在右侧的“Preview”选项卡中显示 URL 的响应内容),也可以根据 URL 名判断,一般程序员不会起无意义的名字,这样很不好维护。根据经验,会找到至少一个名为list_detail_rate.htm的 URL,从表面上看,这是一个静态的页面,其实这个 URL 后面跟着一大堆参数,不可能是静态的,从调试窗后上方的文本框搜索list_detail,也会定位到这个 URL,如图3所示。

enter image description here

图3 获取销售数据的 URL

从该 URL 的响应内容可以明显看到,这是类似于 JSON 格式的数据,而且可以看到评论数据,因此可以断定,这就是我们要找的东西。

可以直接单击这里,在浏览器地址栏中查看。

查看后,会得到如图4所示的 JSON 格式的页面。

enter image description here

图4 JSON 格式销售数据

其实这个 URL 是查看某个商品某一页的评论(销售)数据的,如果要查询所有也的评论数据,就需要动态改变 URL 的参数。下面看一下“Headers”选项卡下面的“Query String Parameters”部分,如图5所示,会清楚地了解该 URL 的具体参数值。

enter image description here

图5 HTTP GET 请求参数

在这些参数中有一部分对我们有用,例如,itemId 表示商品 ID,currentPage 表示当前获取的评论页数,在通过爬虫获取这些评论数据时,需要不断改变这些参数值以获取不同的评论数据。

尽管根据评论数计算(每页20条评论),某些商品的评论页数可能多达数百页,甚至上千页。不过实际上,这个 URL 最多可以返回99页评论数据,也就是最新的近2000条评论数据。我们可以看到“Preview”选项卡中显示的 JSON 数据中有一个 paginator 项,该项目有一个 lastPage 属性,该属性值是99,如图6所示,这个属性值就是最多返回的评论页数。

enter image description here

图6 最大评论页数

现在分析数据的第一步已经搞定了,我们已经知道天猫商城的评论数据是如何从服务的获取的,那么下一步就是抓取这些数据,并保存到本地的 SQLite 数据库中。

京东商城的胸罩销售数据的分析方法与京东商城类似。首先进到京东商城(要求使用 Chrome 浏览器,有很方便的调试工具),搜索出“胸罩”商品,然后进入某个胸罩商品页面。浏览商品页面,在页面的右键菜单中点击“检查”菜单项,打开调试窗口,切换到“Network”选项卡,如图7所示,这个选项卡可以实时显示出当前页面向服务端发送的所有请求,以及这些请求的请求头、响应头、响应内容以及其他与调试有关的信息,对于调试和跟踪 Web 应用相当方便。

enter image description here

图7 切换到“Network”选项卡

打开“Network”选项卡后,进到商品评论处,切换到下一页,会看到“Network”选项卡下方出现很多URL,这就是切换评论页时向服务端新发出的请求,我们要找的东西就在这些 URL 中,至于如何找到具体的 URL,那就要依靠经验了,可以一个一个单击寻找(在右侧的“Preview”选项卡中显示 URL 的响应内容),也可以根据 URL 名判断,一般程序员不会起无意义的名字,这样很不好维护。根据经验,会找到至少一个名为 productPageComments.action 的 URL,单击这个 URL,会在右侧的“Preview”页面显示返回的数据,数据结构与天猫商城返回的商品评论数据类似,如图8所示。

enter image description here

图8 数据结构与天猫商城返回的商品评论数据类似

从该 URL 的响应内容可以明显看到,这是类似于 JSON 格式的数据,而且可以看到评论数据,因此可以断定,这就是我们要找的东西。

可以将这个 URL 复制下来,详见这里,在浏览器地址栏中查看。

查看后,会得到如图9所示的 JSON 格式的页面。

enter image description here

图9 JSON 格式的页面

其实这个 URL 是查看某个商品某一页的评论(销售)数据的,如果要查询所有也的评论数据,就需要动态改变 URL 的参数。下面看一下“Headers”选项卡下面的“Query String Parameters”部分,如图10所示,会清楚地了解该 URL 的具体参数值。

enter image description here

图10 URL 具体参数值

很明显,京东商城返回商品评论数据的 URL 的参数的个数要比天猫商城的少。在这些参数中有一部分对我们有用,例如,productId 表示商品 ID,page 表示当前获取的评论页数,在通过爬虫获取这些评论数据时,需要不断改变这些参数值以获取不同的评论数据。

尽管根据评论数计算(每页10条评论),某些商品的评论页数可能多达数百页,甚至上千页。不过实际上,这个 URL 最多可以返回100页评论数据,也就是最新的1000条评论数据。我们可以看到“Preview”页面中显示的 JSON 数据中有一个 maxPage 属性,该属性值是100,如图11所示,这个属性值就是最多返回的评论页数。

enter image description here

图11 maxPage 属性值

与天猫商城一样,也需要抓取京东多个商品的评论数据(为了抓取一定数量的评论),所以同样也需要获取搜索页面中商品的 ID。商品搜索页面的数据是直接通 HTML 代码一同发送到客户端的,所以可以直接定位到某个商品出,通过 BeautifulSoup 获取特定的 HTML 代码。在京东商城中可以通过每个商品的 a 标签的 href 属性值提取商品 ID,因为每个商品页面都是用商品 ID 命名的。图12 显示了某个商品的 ID 和搜索页面的关系。

enter image description here

图12 某个商品 ID 和搜索页面的关系

很明显,a 标签的 href 属性值指定的 URL 的页面文件名就是商品 ID,只需要提取这个页面文件名即可。

现在分析数据的第一步已经搞定了,我们已经知道天猫商城的评论数据是如何从服务的获取的,那么下一步就是抓取这些数据,并保存到本地的 SQLite 数据库中。

avatar

点击了解《Python 爬虫和数据分析实战》

第02课:抓取天猫商城胸罩销售数据
第03课:抓取京东商城胸罩销售数据
第04课:数据清洗
第05课:数据分析库:Pandas
第06课:数据可视化库:Matplotlib
第07课:罩杯销售比例分析
第08课:胸罩颜色和上胸围销售比例和分布

阅读全文: http://gitbook.cn/gitchat/column/5a7d1a13a7f22b3dffca7e49