概念

  为了爬取网站数据而编写的一款应用框架,出名,强大。所谓的框架其实就是一个集成了相应的功能且具有很强通用性的项目模板。(高性能的异步下载,解析,持久化……)

安装

  1. linux mac os:pip install scrapy
  2. win:
    1. pip install wheel
    2. 下载twisted:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

        pip install 下载好的框架.whl

   3.pip install pywin32

   4.pip install scrapy

基础使用流程

  1. 创建一个工程:scrapy startproject 工程名称
    1. 目录结构:

  2. 在工程目录下创建一个爬虫文件:
    1. cd 工程
    2. scrapy genspider 爬虫文件的名称 起始url
  3. 对应的文件中编写爬虫程序来完成爬虫的相关操作
  4. 配置文件的编写(settings)
    #USER_AGENT = 'redisPro (+http://www.yourdomain.com)'伪装UA
    USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' # Obey robots.txt rules
    ROBOTSTXT_OBEY = False # 取消robots协议
  5. 执行  scrapy crawl 爬虫文件名称

示例

# -*- coding: utf-8 -*-
import scrapy class FirstSpider(scrapy.Spider):
# 爬虫文件的名称:通过爬虫文件的名称可以指定定位到某一个爬虫文件
name = 'first'
#允许的域名:只能爬取指定域名下的页面数据
allowed_domains = ['www.qiushibaike.com']
#起始url:当前工程将要爬取的页面所对应的url
start_urls = ['http://www.qiushibaike.com/'] # 解析方法:对获取的页面数据进行指定内容的解析
# response:根据起始url列表发起请求,请求成功后返回的响应对象
# 返回值:必须为迭代器或者为空
def parse(self, response):
print(response) # 获取响应对象的页面数据

first.py

# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'firstblood (+http://www.yourdomain.com)' # 伪装UA #指定终端输出指定种类的日志信息
LOG_LEVEL = 'ERROR'
LOG_FILE = 'log.txt' # 存储在指定文件中,不再在终端输出 # Obey robots.txt rules
ROBOTSTXT_OBEY = False # 不遵从robots协议

配置文件中添加或修改设置如下

scrapy框架简介和基础使用的更多相关文章

  1. 爬虫开发7.scrapy框架简介和基础应用

    scrapy框架简介和基础应用阅读量: 1432 scrapy 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数 ...

  2. 爬虫(九)scrapy框架简介和基础应用

    概要 scrapy框架介绍 环境安装 基础使用 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能 ...

  3. 10.scrapy框架简介和基础应用

    今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被 ...

  4. scrapy框架简介和基础应用

    scrapy框架介绍 环境安装 基础使用 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性 ...

  5. (六--一)scrapy框架简介和基础应用

    一 什么是scrapy框架 官方解释 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 ( ...

  6. python爬虫----scrapy框架简介和基础应用

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...

  7. scrapy框架简介和基础应用(python爬虫)

    一.什么是scrapy? scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍,所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,持久化等)的具有 ...

  8. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  9. Scrapy 框架简介

    Scrapy 框架 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的 ...

随机推荐

  1. 来自于51CTO的经典学习资料汇总

    移动开发类: 1.2012Android开发热门资料(110个)       http://bbs.51cto.com/thread-934023-1.html 2.[绝对给力]Android开发免豆 ...

  2. Customers Who Never Order

    Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL qu ...

  3. 1 误删dbf文件造成ORA-01109: 数据库未打开.

    1.cmd-sqlplus /nolog-conn system/pwd as sysdba 2.shutdown immediate; 3.startup mount; 4.alter databa ...

  4. JS中关于clientWidth offsetWidth scrollWidth 等的区别

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  5. 使用JS实现图片轮播(前后首尾相接)

    最近各种跑面试,终于还是被问到这个,一脑子浆糊,当时没想出来首尾相接怎么搞,回来之后研究了一波,终于搞出来了,不多说,直接看代码 代码参考了一位已经写好了图片轮播功能的(在此表示感谢),但是没有首尾相 ...

  6. Callable的简单使用

    说起java的线程操作,都会想到Thread和Runable这两个, 这两个类可以实现异步和同步. 在大多数的java开发中, 这两个都是实现异步的线程来使用, 但是现在考虑一种情况: 发出一条线程, ...

  7. IOS -刷帧动画(CADisplayLink)

    @property (nonatomic, assign) int imageY; @end @implementation NJView -(void)awakeFromNib { NSLog(@& ...

  8. MVC文件下载和webform也能使用的下载方法

    public ActionResult Index() { DownloadMethod("text/plain", "C:/Users/sunny/Pictures/S ...

  9. iOS keychain注解

    + (NSMutableDictionary *)getKeychainQuery:(NSString *)service { return [NSMutableDictionary dictiona ...

  10. Angular2--显示数据

    1.插值表达式 要显示组件的属性,最简单的方式就是通过插值表达式来绑定属性名.要使用插值表达式,就把属性名包裹在双花括号里放进视图模板,如 {{}} eg: <h1>{{ name }}& ...