第三百二十四节,web爬虫,scrapy模块介绍与使用python
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其能够应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了页面抓取 (更确切来讲, 网络抓取 )所设计的, 也能够应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途普遍,能够用于数据挖掘、监测和自动化测试。mysql
Scrapy 使用了 Twisted异步网络库来处理网络通信。总体架构大体以下web
Scrapy主要包括了如下组件:sql
Scrapy运行流程大概以下:数据库
建立Scrapy框架项目网络
Scrapy框架项目是有python安装目录里的Scripts文件夹里scrapy.exe文件建立的,因此python安装目录下的Scripts文件夹要配置到系统环境变量里,才能运行命令生成项目架构
建立项目框架
首先运行cmd终端,而后cd 进入要建立项目的目录,如:cd H:\py\14dom
进入要建立项目的目录后执行命令 scrapy startproject 项目名称异步
scrapy startproject pach1
项目建立成功
项目说明
目录结构以下:
├── firstCrawler
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── settings.py
│ └── spiders
│ └── __init__.py
└── scrapy.cfg
建立第一个爬虫
建立爬虫文件在spiders文件夹里建立
一、建立一个类必须继承scrapy.Spider类,类名称自定义
类里的属性和方法:
name属性,设置爬虫名称
allowed_domains属性,设置爬取的域名,不带http
start_urls属性,设置爬取的URL,带http
parse()方法,爬取页面后的回调方法,response参数是一个对象,封装了全部的爬取信息
response对象的方法和属性
response.url获取抓取的rul
response.body获取网页内容字节类型
response.body_as_unicode()获取网站内容字符串类型
# -*- coding: utf-8 -*- import scrapy class AdcSpider(scrapy.Spider): name = 'adc' #设置爬虫名称 allowed_domains = ['www.shaimn.com'] start_urls = ['http://www.shaimn.com/xinggan/'] def parse(self, response): current_url = response.url #获取抓取的rul body = response.body #获取网页内容字节类型 unicode_body = response.body_as_unicode() #获取网站内容字符串类型 print(unicode_body)
爬虫写好后执行爬虫,cd到爬虫目录里执行scrapy crawl adc --nolog命令,说明:scrapy crawl adc(adc表示爬虫名称) --nolog(--nolog表示不显示日志)
也能够在PyCharm执行命令