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. Spring Boot 容器选择 Undertow 而不是 Tomcat

    Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动 ...

  2. [转]VB 读写ini 配置文件

    转自 百度知道 C# 读写 ini配置文件 点此链接 'API 声明Public Declare Function GetPrivateProfileString Lib "kernel32 ...

  3. 符合seo的html标签优化

     原文地址:http://www.rainleaves.com/html/1032.html   seo(Search Engine Optimiztion)搜索引擎优化的英文缩写.通过总结搜索引擎的 ...

  4. ACCESS常用数字类型的说明和取值范围

    下面是ACCESS常用数字类型的说明和取值范围列表明供参考 数字类型                 范围 Byte(字节)            介于 0 到 255 之间的整型数. Integer ...

  5. SCCM 2012 R2实战系列之二:前提工作准备

    在上一篇中,我们完成了SQL Server 2012的安装和配置.现在跟大家分享SCCM安装前的准备工作. 2.1 SCCM 2012 R2 准备工作 2.1.1 创建并分配System Manage ...

  6. virtualbox创建虚拟机

    两种方式: 1.使用.vdi硬盘镜像文件 2.使用操作系统新建 方法1: #结束! 方法2:

  7. python3基础操作

    ubuntu下python连接mysql apt-get install python-mysqldb 获取当前时间 >>> from datetime import datetim ...

  8. Android Studio设置自动导包

    Android Studio设置自动导包. 步骤: (1)找到File->Settings (2)找到Editor->General->Auto Import (3)依照上图勾选几个 ...

  9. 修改之前某次commit日志和内容

    如果需要撤销最近一次提交的代码 已经commit,没有submit状态:可以使用git reset --hard HEAD^ 比如之前已经提交了五个patch,但是需要修改第三个. 第一步: 将修改的 ...

  10. CSS 随笔

    1.动态修改div的大小 Html: <div> Hello </div> css: div { resize:both; overflow:auto; } 2. box-si ...