概念

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

安装

  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协议

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

最新文章

  1. NOT IN 和NOT EXISTS
  2. angular2系列教程(五)Structural directives、再谈组件生命周期
  3. PV 与 并发数 之间的故事
  4. python 多线程就这么简单(转)
  5. 在学Go语言
  6. jQuery入门级part.1
  7. [GeekBand] STL与泛型编程(1)
  8. SDUT 3258 Square Number 简单数学
  9. CentOS7 systemctl的使用
  10. stl非变易算法(二)
  11. 2、变量var关键字
  12. 解决MyEclipse吃内存以及卡死的方法 (转)
  13. [Codeforces Round #516][Codeforces 1063C/1064E. Dwarves, Hats and Extrasensory Abilities]
  14. mysql创建新的用户及flush privileges解析
  15. Python练习题
  16. Linux 下压缩与解压.zip和.rar
  17. 在WIN10打造成能运行Oracle的JDK的Linux
  18. diamond的设计思路
  19. (转载)ibatis:解决sql注入问题
  20. c++ String去除头尾空格

热门文章

  1. Storm概念学习系列之事务
  2. Timer控制开始、停止例子【转】
  3. Linux软件相关记录
  4. 用C++/CLI搭建C++和C#之间的桥梁
  5. 如何查看与显示oracle表的分区信息
  6. Spring Boot : Swagger 2
  7. Visual Studio 2015 终于还是装上了
  8. c++ STL map容器成员函数
  9. IOS UIImageView的帧动画
  10. selenium跳过https的问题