【数据挖掘】2018最新python3 数据分析与爬虫实战笔记

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

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

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

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

geturl:获取网页的网址

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第1张图片

网页访问超时设置

 17

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第2张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第3张图片

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

使用urllib.request.quote()函数

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第4张图片

post:

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第5张图片

18

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第6张图片

19伪装浏览器

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第7张图片

 20

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第8张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第9张图片

 

22代理服务器

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第10张图片

23图片爬虫

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第11张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第12张图片

26

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第13张图片

27微信爬虫

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第14张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第15张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第16张图片

 【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第17张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第18张图片

28  多线程爬虫

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第19张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第20张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第21张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第22张图片

29   Scrapy安装

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

view:

项目命令:

bench:测试本地硬件性能

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第23张图片

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

                                   (基于的模板)

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第24张图片

测试:

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第25张图片

crawl:运行要运行的文件

scrapy crawl weisun

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

parse:

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

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第26张图片

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

basic是普通爬虫的母版

crawl是自动爬虫的母版

验证:

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第27张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第28张图片

32

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第29张图片

items.py设置要爬取的目标

pipelines.py进行后续处理

设置步骤:

  •   items.py:

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第30张图片

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第31张图片

  • setting.py:相对应的配置

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

response存储了所有想要的信息

导入items.py里面对应的类

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第32张图片

scrapy执行流程:

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第33张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第34张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第35张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第36张图片

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数据分析与挖掘相关模块

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第37张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第38张图片

 44模块的使用

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第39张图片

45数据的导入

csv格式:

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第40张图片

excel格式:

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

mysql格式:

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第41张图片

 可以是网页链接

文本文件:txt文件

47   matplotlib的使用

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第42张图片

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第43张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第44张图片

展现形式的更改方式:

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第45张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第46张图片

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第47张图片

 设置横轴纵轴

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第48张图片

随机数

正态分布

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第49张图片

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

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

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第50张图片

面板分区方法:

 【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第51张图片

 【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第52张图片

49

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第53张图片

51   数据探索和数据清洗

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第54张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第55张图片

 54   数据集成

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第56张图片

【数据挖掘】2018最新python3 数据分析与爬虫实战笔记_第57张图片

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(笔记)