Scrapy框架课程介绍:

  1. 框架的简介和基础使用
  2. 持久化存储
  3. 代理和cookie
  4. 日志等级和请求传参
  5. CrawlSpider
  6. 基于redis的分布式爬虫

一scrapy框架的简介和基础使用

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

b)         安装:

i. linux mac os:pip install scrapy

ii. win:

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

pip install 下载好的框架.whl

  1. pip install pywin32
  2. pip install scrapy

c)          基础使用: 使用流程

i.                创建一个工程:scrapy startproject 工程名称

  1. 目录结构:

ii.                在工程目录下创建一个爬虫文件:

  1. cd 工程
  2. scrapy genspider 爬虫文件的名称 起始url

iii.                对应的文件中编写爬虫程序来完成爬虫的相关操作

iv.                配置文件的编写(settings)

v.                执行

vi.                在工程目录下创建一个爬虫文件

  1. cd 工程
  2. scrapy genspider 爬虫文件的名称 起始的url

vii.                对应的文件中编写爬虫程序来完成爬虫的相关操作

viii.                配置文件的编写(settings)

  1. 19行:对请求载体的身份进行伪装
  2. 22行:不遵从robots协议

ix.                执行 :scrapy crawl 爬虫文件的名称   --nolog(阻止日志信息的输出)

cp后面的数字代表python的版本,35代表3.5版本;

 直接安装:

创建项目:

目前还没有IDE 能够创建scrapy的项目,我们必须手动初始化项目

1、找一个目录

输入命令

命令行出现这样的结果说明创建成果

You can start your first spider with:
cd SpiderObject
scrapy genspider example example.com

------------------------------------------

基础使用: 使用流程

1、创建一个工程:scrapy startproject 工程名称

在命令行下:

scrapy startproject 项目名称

在pycharm中打开:

目录结构:

pipelines管道

2.在工程目录下创建一个爬虫文件:

1. 在命令行下 cd 进入工程所在文件夹

2.scrapy genspider 爬虫文件的名称 起始url

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

3.对应的文件中编写爬虫程序来完成爬虫的相关操作

初始阶段settings.py配置

修改内容及其结果如下:
19行: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' #伪装请求载体身份 22行:ROBOTSTXT_OBEY = False #可以忽略或者不遵守robots协议

进入到项目文件下再执行命令

执行 :scrapy crawl 爬虫文件的名称   --nolog(阻止日志信息的输出)

如果后面加上 --nolog就是阻止日志信息输出

小试牛刀:将糗百首页中段子的内容和标题进行爬取

vi.    在工程目录下创建一个爬虫文件
1. cd 工程
2. scrapy genspider 爬虫文件的名称 起始的url
vii. 对应的文件中编写爬虫程序来完成爬虫的相关操作
viii. 配置文件的编写(settings)
1. 19行:对请求载体的身份进行伪装
2. 22行:不遵从robots协议
ix. 执行 :scrapy crawl 爬虫文件的名称 --nolog(阻止日志信息的输出)

class QiubaiSpider(scrapy.Spider):
name = 'qiubai'
#allowed_domains = ['www.qiushibaike.com/text']
start_urls = ['https://www.qiushibaike.com/text/'] def parse(self, response):
# 建议大家使用xpath进行解析(框架集成了xpath解析的接口)
div_list = response.xpath("//div[@id='content-left']/div")
for div in div_list:
author = div.xpath('./div/a[2]/h2/text()')
content = div.xpath(".//div[@class='content']/span/text()")
print(author)

-------------------------------------

  # xpath解析到的指定内容被存储到了Selector对象
# extract()改方法可以将Selector对象数据值拿到
#author = div.xpath('./div/a[2]/h2/text()').extract()[0]
author = div.xpath('./div/a[2]/h2/text()').extract_first()

最终形式:

class QiubaiSpider(scrapy.Spider):
name = 'qiubai'
#allowed_domains = ['www.qiushibaike.com/text']
start_urls = ['https://www.qiushibaike.com/text/'] def parse(self, response):
# 建议大家使用xpath进行解析(框架集成了xpath解析的接口)
div_list = response.xpath("//div[@id='content-left']/div")
for div in div_list:
# xpath解析到的指定内容被存储到了Selector对象
# extract()改方法可以将Selector对象数据值拿到
#author = div.xpath('./div/a[2]/h2/text()').extract()[0]
# extract()[0]======>extract_first()
author = div.xpath('./div/a[2]/h2/text()').extract_first()
#content = div.xpath(".//div[@class='content']/span/text()")
content = div.xpath(".//div[@class='content']/span/text()").extract_first()
print(author)
print(content)

爬虫--Scrapy框架课程介绍的更多相关文章

  1. python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)

    操作环境:python3 在上一文中python爬虫scrapy框架--人工识别知乎登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前 ...

  2. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  3. 爬虫scrapy框架之CrawlSpider

    爬虫scrapy框架之CrawlSpider   引入 提问:如果想要通过爬虫程序去爬取全站数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模 ...

  4. 安装爬虫 scrapy 框架前提条件

    安装爬虫 scrapy 框架前提条件 (不然 会 报错) pip install pypiwin32

  5. 爬虫Ⅱ:scrapy框架

    爬虫Ⅱ:scrapy框架 step5: Scrapy框架初识 Scrapy框架的使用 pySpider 什么是框架: 就是一个具有很强通用性且集成了很多功能的项目模板(可以被应用在各种需求中) scr ...

  6. 爬虫框架 ---- scrapy 框架的介绍与安装

    -----  爬虫 基于B/S 模式的数据采集技术,按照一定的规则,自动的抓取万维网信息程序 以一个或多个页面为爬取起点,从页面中提取链接实现深度爬取 使用爬虫的列子 第三方抢票软件(360/猎豹/ ...

  7. python爬虫scrapy框架

    Scrapy 框架 关注公众号"轻松学编程"了解更多. 一.简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量 ...

  8. 爬虫Scrapy框架运用----房天下二手房数据采集

    在许多电商和互联网金融的公司为了更好地服务用户,他们需要爬虫工程师对用户的行为数据进行搜集.分析和整合,为人们的行为选择提供更多的参考依据,去服务于人们的行为方式,甚至影响人们的生活方式.我们的scr ...

  9. Python爬虫 ---scrapy框架初探及实战

    目录 Scrapy框架安装 操作环境介绍 安装scrapy框架(linux系统下) 检测安装是否成功 Scrapy框架爬取原理 Scrapy框架的主体结构分为五个部分: 它还有两个可以自定义下载功能的 ...

随机推荐

  1. 项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError

    https://www.cnblogs.com/liuyp-ken/p/7911536.html 解决过程: 1.检查配置,反反复复看了很多遍,确认没有问题. 2. 网上找了很多资料,类似的问题很多, ...

  2. get和post的解析

    get 直接获取数据 post 将数据发送到服务端缓存下来,当无法缓存数据或用户输入未知字符时用post, get:常用于数据 post:不想缓存数据,不再浏览器中缓存数据,在服务端可以,因为取数据及 ...

  3. MySQL学习----多版本并发mvcc

    MySQL中的大多数事务性存储引擎实现的都不是简单的行级锁.基于提升并发性能的考虑,他们一般实现了多版本并发控制(mvcc).不仅是mysql,包括oracle,postgresql等其他数据库也实现 ...

  4. 制作OpenStack云平台centos6.5镜像

    创建虚拟镜像 # qemu-img create -f raw Cloud_Centos6.5_64bit.img 10G [root@localhost ~]# ll /opt/CentOS-6.5 ...

  5. ROS routeros mikrotik路由器CVE-2018-14847漏洞

    原文: https://securitynews.sonicwall.com/xmlpost/massive-cryptojacking-campaign/ SonicWall is observin ...

  6. vue2.0 中#$emit,$on的使用详解

    vue1.0中 vm.$dispatch 和 vm.$broadcast 被弃用,改用$emit,$on 1. vm.$on( event, callback ) 监听当前实例上的自定义事件.事件可以 ...

  7. js对象以及DOM

    JavaScript的对象 在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String.Math.Array.Date.R ...

  8. php创建临时表

    $sql= "create temporary table yc_linshi ( img varchar(100) not null, openid varchar(50) not nul ...

  9. phalcon断点调试(phpStorm+xdebug)

    1.下载并添加chrome插件xdebug helper,下载地址:http://www.downcc.com/soft/261091.html 2.php添加xdebug扩展 mkdir -p /u ...

  10. 转载:centos安装redis

    转载自:https://www.cnblogs.com/renzhicai/p/7773080.html CentOS下Redis的安装 [TOC] 前言 安装Redis需要知道自己需要哪个版本,有针 ...