Python学习笔记-----Scrapy

来源:互联网 发布:淘宝店铺级别提升 编辑:程序博客网 时间:2024/05/22 15:02

Python
英文意思:大蟒蛇:
使用python可以做哪些用途?
1、 网站的开发,利用django,flask框架搭建网站。
2、 用爬虫实现数据挖掘、批量处理,例如:微博私信机器人,美剧批量下载,运行投资策略、刷便宜机票,爬合适房源、系统管理员脚本。
3、 再包装其他语言程序。
关于Python的库:
首先是python内置的标准库,然后在此基础上,如果想要相应的扩展,可以下载并且导入第三方库
爬虫部分:
首先,我们先看下什么是爬虫呢?
爬虫的英文翻译叫spider,即网络爬虫,可以理解为在互联网络上爬行的一只蜘蛛,当这只蜘蛛遇到资源的时候,它就会抓取下来,至于抓取什么内容,就由控制爬虫的代码来完成了。
一些爬虫的基本概念:
URL:就是一种资源定位符,简单来说就是我们通常说的网址。这边需要注意的就是,互联网上的每一个文件都有唯一的一个URL,它包含的信息就是指出文件的位置以及浏览器怎么处理它。
URL的组成:
1、协议,也叫服务方式
2、存有该资源的主机IP,或者端口号
3、主机资源的具体地址,比如目录

Scrapy 框架学习:
基本介绍:
Scrapy的基本组件
Spider:是一个类,它定义了怎么样爬取一个网站,包括怎么跟踪链接,怎样提取数据
Scrapy.spider的属性:
Name:spider的名称
Allowed_domains():爬虫站点
scrapy的基本概念
一、Request对象
1.初始化参数

class scrapy.http.Request(    url [ ,             #必须的    callback,           #回调函数    method='GET',       #请求方法    headers,     body,    cookies,     meta,               #元数据    encoding='utf-8',   #编码    priority=0,         #优先级    don't_filter=False, #是否过滤URlflag    errback             #发生错误时所调用的函数]  )

2.其他属性:

urlmethodheadersbodymetacopy()replace()

3、基本方法
生成request实例:
例子1:

def parse_page1(self, response):    return scrapy.Request("http://www.example.com/some_page.html",                            callback=self.parse_page2)def parse_page2(self, response):    # this would log http://www.example.com/some_page.html    self.logger.info("Visited %s", response.url)

其中,parse_page1方法返回了一个URL,并且回调到parse_page1,记录了其日志信息
例子2:

def parse_page1(self, response):    item = MyItem()    item['main_url'] = response.url    request = scrapy.Request("http://www.example.com/some_page.html",    callback=self.parse_page2)    request.meta['item'] = item    return requestdef parse_page2(self, response):    item = response.meta['item']    item['other_url'] = response.url    return item

在parse_page1方法中首先实例化了一个item,然后把response.url赋给了item中的‘main_url’字段,
然后生成一个request,回调到parse_page2【首先把response.meta[‘item’]赋值给item,然后把response.url赋值给item的‘other_url’字段】,接着把item赋给request.meta[‘item’],这样做的目的是是的parse_page2方法能够使用上一个函数传递过来的item的对象。这是两个不同函数之间传递数据的一种方法。
二、Response对象 是Scrapy对Requese请求之后的反馈对象
1、初始化参数:

class scrapy.http.Response(    url [ ,     status=200,     headers,     body,     flags ] )

2其他参数:

urlstatusheadersbodyrequestmetaflagscopy()

3.子类:

class scrapy.http.TextResponse(url [ , encoding [ , ... ]] )class scrapy.http.HtmlResponse(url [ , ... ] )class scrapy.http.XmlResponse(url [ , ... ] )

关于Scrapy的内置服务
有四个模块,分别是:Logging模块,Stats Collections模块,Sending-email模块,Summary模块。下面,会对其进行相关的解释。

首先关于Logging模块:
基本使用模块:

0 0
原创粉丝点击