zoukankan      html  css  js  c++  java
  • 使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

    初学Scrapy,实现爬取网络图片并保存本地功能

    一、先看最终效果

    保存在F:pics文件夹下
    这里写图片描述

    二、安装scrapy

    1、python的安装就不说了,我用的python2.7,执行命令pip install scrapy,或者使用easy_install 命令都可以

    2、可能会报如下错误

    ***********************************************************  Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?  ***********************************************************
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    这里写图片描述
    解决方法:安装libxml2
    下载对应的Python的版本,安装即可,网址:
    https://pypi.python.org/pypi/lxml/3.4.4

    三、创建项目

    1、执行命令

    scrapy startproject xiaohuar
    • 1
    • 1

    会自动创建xiaohuar的scrapy项目

    2、项目结构(我用的是WingIDE)

    这里写图片描述

    文件说明:
    • scrapy.cfg 项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)
    • items.py 设置数据存储模板,用于结构化数据,如:Django的Model
    • pipelines 数据处理行为,如:一般结构化的数据持久化
    • settings.py 配置文件,如:递归的层数、并发数,延迟下载等
    • spiders 爬虫目录,如:创建文件,编写爬虫规则

    四、编写爬虫程序

    1、在spiders文件夹下创建.py文件

    代码中注释已经很详细了,就不解释了,关于解析html内容,使用的是xpath,之前使用Javawebmagic 爬虫框架也是使用的此种方式,所示还是比较熟悉,一些插叙语法参考步骤2

    2、xpath查询语法

    查询标签中带有某个class属性的标签://div[@class=’c1’]即子子孙孙中标签是div且class=‘c1’的标签
    • 查询标签中带有某个class=‘c1’并且自定义属性name=‘alex’的标签://div[@class=’c1’][@name=’alex’]
    • 查询某个标签的文本内容://div/span/text() 即查询子子孙孙中div下面的span标签中的文本内容
    • 查询某个属性的值(例如查询a标签的href属性)://a/@href

    3、运行

    进入到xiaohuar目录,执行
    scrapy crawl xiaohuar
    可能会报以下错误,原因是少win32api的模块
    这里写图片描述
    解决方法:
    选择对应的版本下载安装即可地址:
    http://sourceforge.net/projects/pywin32/files/

    4、关于scrapy shell终端

    可以使用scrapy shell进行调试,例如执行
    scrapy shell http://www.xiaohuar.com/list-1-1.html
    就可以查看得到的数据
    这里写图片描述

    5、最后的说明

    程序执行过程中可以设置爬取的深度,我这里没有设置,可能关掉cmd程序还在执行,可以结束python的进程,或者设置爬取深度


    五、总结

    最近学习在python,实现非常简单的一个爬虫当做练习,中间一些模块的缺少错误,在网上查询还是费了很多的时间,有的回答是没有解决的,总之自己实践之后才会更加深刻。

  • 相关阅读:
    cf492D Vanya and Computer Game
    cf492C Vanya and Exams
    cf492A Vanya and Cubes
    bzoj2038 [2009国家集训队]小Z的袜子(hose)
    bzoj3781 小B的询问
    bzoj1858 [Scoi2010]序列操作
    bzoj1060 [ZJOI2007]时态同步
    算法学习心得
    bzoj1054 [HAOI2008]移动玩具
    bzoj3437 小P的牧场
  • 原文地址:https://www.cnblogs.com/Yemilice/p/6192663.html
Copyright © 2011-2022 走看看