一、基础知识

1. Spiders 文件夹

   用于编写爬虫规则,可以在已有的___init__.py文件中编写具体的爬虫规则但是实际开发中可能有多个爬虫规则,所以建议一个爬虫规则用一个文件表示,这样便于维护和管理

2. 代码

# -*- coding: utf-8 -*-
import scrapy
from baidu.items import BaiduItem
from scrapy.selector import Selector #自带的数据清洗模块
from scrapy.spiders import Spiderclass SpiderSpodersSpider(scrapy.Spider):name = 'Spider_spoders'#必须设置,而且是唯一的命名,用于运行爬虫allowed_domains = ['baidu.com']start_urls = ['http://baidu.com/list?cid=110','http://baidu.com/list?cid=110102']#函数parse处理相应内容,函数名不能更改def parse(self, response):sel=Selector(response)#将相应内容生成selector,用于数据的清洗items=[]item=BaiduItem()#定义BaiduItem对象title=sel.xpath('//div[@class="question-title"]/a/text()').extract()for i in title:items.append(i)items['TitleName']=itemsreturn item

代码说明:

(1) 属性name不能为空,是程序运行入口,如果有多个爬虫规则,那么每个规则的属性name不能重复

(2) Allowed_domains是设置允许访问的域名,如果为空,就说明对域名不做访问限制

(3) Start_urls用于设置爬取对象的URL,程序运行时会对start_urls遍历处理

(4) 类方法parse()用于处理网站的相应内容,如果爬虫引擎是Spider,方法名就不能更改

(5) 爬虫规则以类为实现单位,并继承父类Spider,Spider是Scrapy的爬虫引擎

3. spiders介绍

  (1) Spider是定义如何抓取某个网站的类,包括如何执行抓取(访问URL)以及如何从页面中提取结构化数据(抓取数据)。Spider是开发者自定义的类,用于为特定的网抓取和解析页面。

  (2)Spider执行周期:

  1. 抓取第一个URL的初始请求,然后指定一个回调函数,从请求的响应来调用回调函数,请求链接通过调用start_requests()方法,parse方法作为回调函数处理请求链接返回的请求结果
  2. 在回调函数中,主要解析响应内容,并将解析后的数据存储在item对象中
  3. 在回调函数中,通常选用选择器(beautifulsoup、lxml)解析页面内容,并将解析的数据存储在item对象中。

4 Spider的种类

 (1)Scrpay.spiders.Spider:最简单的spider类,其他的类是继承该类,不提供任何的特殊功能,只提供一个默认的start_requests()方法,请求从start_urls开始,Spider发送请求,并使用函数parse处理每个响应内容。

 (2)Scrapy.spiders.CrawlSpider:抓取常规网站最常用的spider,提供了一个方便机制,可通过定义一组规则来跟踪URL,适合全站数据爬取和通用的爬虫开发。除了拥有scrapy.spider.Spider全部属性之外,还有特定属性rules和parse_start_url方法

转载于:https://www.cnblogs.com/luoyw/p/10587241.html

5.spiders(文件夹)相关推荐

  1. 如何用CMD递归查看Windows中文件夹结构 也叫做树形结构!

    CMD tree /? 就可以查询用法! 代码如下: C:\>tree /? 以图形显示驱动器或路径的文件夹结构.TREE [drive:][path] [/F] [/A]/F 显示每个文件夹中 ...

  2. python保存图片到指定路径_python 抓取页面数据,并保存图片文本到指定目录文件夹...

    这个爬虫主要利用scrapy+beautifulsoup完成,其中图片保存碰到了一个大坑,花了一天的时间才解决. 大坑就是:在抓取文章页指定区域所有图片的时候,刚好那块区域的图片所有页面都一样,导致图 ...

  3. 关于ftp的文件批量下载(包括文件夹和文件)的多种方法

    博主纯手工打字,转载请注明出处!各位大佬不喜勿喷! 先笼统说一下本文针对ftp协议下的文件夹和文件递归下载方法: (I)使用FileZilla工具进行下载: (II)使用脚本爬取: (III)使用命令 ...

  4. python win7共享文件夹下载文件夹

    # -*- coding: utf-8 -*- # pip install shutil import os import sys import shutil from datetime import ...

  5. Ubuntu系统查看文件夹目录

    方法1 进入文件夹里面我们可以使用 按下Ctrl + L 可以看到文件的路径了 然后复制即可 方法2 可以鼠标右键点击最下面的属性 然后复制位置里面的路径即可

  6. AndroidStudio 新建不同的Drawable文件夹

    以前习惯eclipse开发Android的朋友们知道 新创建一个Android项目的时候eclipse会自动生成多个drawable文件夹来存放图片 但是Android Studio 新建项目的时候只 ...

  7. 简介SharePoint 2010 14 Hive文件夹

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/36018873 简介SharePoint 20 ...

  8. 批量新建文件夹并命名_dos命令实现批量新建文件夹

    1.批量新建文件夹(使用命令:MD) 实现案例:假如我们要新建10个文件夹,这10个文件夹的名称分别是数字1-10来命名. 以下详细步骤: 1)在excel表里面把需要批量新建的文件夹名字放到一列(假 ...

  9. 用Python在Windows或Linux下批量删除文件夹中指定的文件

    情况说明:当在一个文件夹下面有好几十个或几百个文件需要删除,此时一一去挑选费时费力,特别是在Linux下面.因此,需要批量删除文件. 对训练样本(图像)和测试样本(图像)进行评估时候,需要查看是数据本 ...

最新文章

  1. 【UWB】ELM 极限学习机原理及公式推导
  2. Oracle Study之案例--数据恢复神器Flashback(2)
  3. 编程之美2.13子数组的最大乘积
  4. jsp 连接MS server 数据库的例子
  5. 打桩时不修改源码_考研网上报名点了修改报名,修改后到报名点时,出现部分信息不符合参考条件,请修改或重新报名...
  6. thinkpad linux 键盘,Linux 5.10或支持联想PC键盘快捷键
  7. 启动的时候闪退_APP突然闪退怎么办?学会这五个妙招比换手机实用,看完望周知...
  8. cache数据库入门教程 数据库m语言常用函数和命令
  9. 电视无线dns服务器,电信电视dns遭到劫持,无线网络DNS被劫持了,怎么解决
  10. 皮尔森残差_用SPSS进行列联表分析(Crosstabs)实例
  11. MyEclipse 中文转英文
  12. EMV log 解析
  13. 司美格鲁肽进入临床竞速期,减肥“神药”生于偶然、火于乱象?
  14. 【读书笔记】《杜月笙全传》读书笔记
  15. 【C++】类和对象入门知识
  16. mipi传输距离3米_常见的网络传输介质有哪几种?
  17. Linux入门+环境搭建云服务器
  18. 静态路由的c语言编程实现,静态路由实验1(静态路由的基本配置)
  19. jquery 中 $(document).ready() 与window.onload 的区别
  20. 让bootstrap兼容ie6 ie7 ie8 ie9 ie10 ie11的解决方法

热门文章

  1. 180118 有趣的人工智能对话小程序
  2. python 类、模块、包的区别
  3. oracle的安装与plsql的环境配置
  4. 01背包 模板1 2 总结
  5. 存储过程——介绍(一)
  6. Android----使用代码 建立gprs 闹钟 连接
  7. 兼容IE与firefox的css 线性渐变(linear-gradient)
  8. 【前端面试】字节跳动2019校招面经 - 前端开发岗(二)
  9. MongDB集合文档操作符
  10. shiro使用jdbc_realm登录验证