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进行后续处理
scrapy.Field()语句创建想要的容器
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返回的内容的类,每个蜘蛛都能处理一个域名或一组域名。换句话说就是用来定义特定网站的抓取和解析规则。
蜘蛛的整个抓取流程(周期)是这样的:
5、Item Pipeline(项目管道)
项目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几 个特定的次序处理数据。每个项目管道的组件都是有一个简单的方法组成的Python类。他们获取了项目并执行他们的方法,同时他们还需要确定的是是否需要 在项目管道中继续执行下一步或是直接丢弃掉不处理。
项目管道通常执行的过程有:
6、Downloader middlewares(下载器中间件)
下载中间件是位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。它提供了一个自定义的代码的方式 来拓展Scrapy的功能。下载中间器是一个处理请求和响应的钩子框架。他是轻量级的,对Scrapy尽享全局控制的底层的系统。
7、Spider middlewares(蜘蛛中间件)
蜘蛛中间件是介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。它提供一个自定义代码的方式来拓展Scrapy 的功能。蛛中间件是一个挂接到Scrapy的蜘蛛处理机制的框架,你可以插入自定义的代码来处理发送给蜘蛛的请求和返回蜘蛛获取的响应内容和项目。
8、Scheduler middlewares(调度中间件)
调度中间件是介于Scrapy引擎和调度之间的中间件,主要工作是处从Scrapy引擎发送到调度的请求和响应。他提供了一个自定义的代码来拓展Scrapy的功能。
三、数据处理流程
Scrapy的整个数据处理流程有Scrapy引擎进行控制,其主要的运行方式为:
四、驱动器
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 数据集成