Scrapy使用的基本流程与实例讲解


Posted in Python onOctober 21, 2018

前面已经介绍过如何创建scrapy的项目,和对项目中的文件功能的基本介绍。

这次,就来谈谈使用的基本流程:

(1)首先第一点,打开终端,找到自己想要把scrapy工程创建的路径。这里,我是建立在桌面上的。打开终端,输入:
cd Desktop 就进入了桌面文件存储位置。

Scrapy使用的基本流程与实例讲解

(2)创建scrapy工程。终端输入:scrapy startproject image

Scrapy使用的基本流程与实例讲解

终端输入:cd image

继续输入:scrapy genspider imageSpider pic.netbian.com

Scrapy使用的基本流程与实例讲解

(3)在pycharm中打开刚才桌面的文件,进入settings.py设置爬虫规则。可以将规则直接注释掉,或者改为False

Scrapy使用的基本流程与实例讲解

(4) 回到爬虫文件。

Scrapy使用的基本流程与实例讲解

更改start_url,将爬虫默认的第一个网址更改为需要爬取的网站网址即可。

(5)下面就可以爬取数据了,这里选择了下载图片。

爬取完数据之后,要在存储数据的items.py文件中传输给管道

接下来在爬虫文件中引入管道模型。

from ..items import ImageItem

在爬虫文件中的parse函数中使用在items.py文件中创建的数据模型。

item = ImageItem()

注意点:

有时候在终端输出的时候,如果返回内容是scrapy.selector ,如果对象类型是scrapy.selector,那么这个对象可以被继续迭代,也可以用xpath继续寻找里面的内容。

如果终端遇到这个问题:

# ValueError:Missing scheme in request url:h

那么就需要使用extract()将xpath对象转化成列表对象。而列表对象,可以继续被迭代,但是不可以使用xpath来寻找里面的对象。

在下载之前还需要在settings.py文件中,对图片下载的路径和存储位置进行设置。

Scrapy使用的基本流程与实例讲解

下面附代码如下。仅有爬虫文件的代码:

# -*- coding: utf-8 -*-
import scrapy
from ..items import ImageItem
class ImagespiderSpider(scrapy.Spider):
  name = 'imageSpider'
  allowed_domains = ['pic.netbian.com']
  start_urls = ['http://pic.netbian.com/4kmeinv/']
 
  def parse(self, response):
    img_list = response.xpath('//ul[@class="clearfix"]/li/a/img/@src')
    # 找到了很多src属性值,现在进行遍历,分别使用每一个
    for img in img_list:
      # 使用在items.py中创建的数据模型item
      item = ImageItem()
      print('--------------------')
      img = img.extract()
      # 拼接图片的url,得到完整的下载地址
      src = 'http://pic.netbian.com' +img
      # 将得到的数据放入到模型中
      # 因为是下载地址,所以要用列表包起来,否则会报错。
      item['src'] = [src]
      yield item
    next_url = response.xpath('//div[@class="page"]/a[text()="下一页"]/@href').extract()
    print('*****************************************************************')
    if len(next_url)!=0:
      url = 'http://pic.netbian.com'+next_url[0]
      # 将url传给scrapy.Request 得到的结果继续用self.parse进行处理
      yield scrapy.Request(url=url,callback=self.parse)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python实现list元素按关键字相加减的方法示例
Jun 09 Python
django实现前后台交互实例
Aug 07 Python
Python中列表与元组的乘法操作示例
Feb 10 Python
python导入坐标点的具体操作
May 10 Python
python实现超级马里奥
Mar 18 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python中执行smtplib失败的处理方法
Jul 01 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 #Python
Python3 读、写Excel文件的操作方法
Oct 20 #Python
python numpy数组的索引和切片的操作方法
Oct 20 #Python
详解Python字典小结
Oct 20 #Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 #Python
Django中的ajax请求
Oct 19 #Python
Tesserocr库的正确安装方式
Oct 19 #Python
You might like
php获取发送给用户的header信息的方法
2015/03/16 PHP
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
python的常见命令注入威胁
2013/02/18 Python
python实现数组插入新元素的方法
2015/05/22 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
大学社团活动策划书
2014/01/26 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
小班秋游活动方案
2014/02/22 职场文书
小学生家长寄语
2014/04/02 职场文书
工商管理自荐书
2014/07/06 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
于丹论语心得观后感
2015/06/15 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python