使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

时间:2023-02-05 21:17:18

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

一、先看最终效果

保存在F:\pics文件夹下
使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

二、安装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

使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
解决方法:安装libxml2
下载对应的Python的版本,安装即可,网址:
https://pypi.python.org/pypi/lxml/3.4.4

三、创建项目

1、执行命令

scrapy startproject xiaohuar
  • 1
  • 1

会自动创建xiaohuar的scrapy项目

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

使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

文件说明:
• 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的模块
使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
解决方法:
选择对应的版本下载安装即可地址:
http://sourceforge.net/projects/pywin32/files/

4、关于scrapy shell终端

可以使用scrapy shell进行调试,例如执行
scrapy shell http://www.xiaohuar.com/list-1-1.html
就可以查看得到的数据
使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

5、最后的说明

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

五、总结

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

使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)的更多相关文章

  1. Python使用Scrapy爬虫框架全站爬取图片并保存本地(妹子图)

    大家可以在Github上clone全部源码. Github:https://github.com/williamzxl/Scrapy_CrawlMeiziTu Scrapy官方文档:http://sc ...

  2. windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息

    scrapy作为流行的python爬虫框架,简单易用,这里简单介绍如何使用该爬虫框架爬取个人博客信息.关于python的安装和scrapy的安装配置请读者自行查阅相关资料,或者也可以关注我后续的内容. ...

  3. Scrapy爬虫框架之爬取校花网图片

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  4. scrapy爬虫系列之三--爬取图片保存到本地

    功能点:如何爬取图片,并保存到本地 爬取网站:斗鱼主播 完整代码:https://files.cnblogs.com/files/bookwed/Douyu.zip 主要代码: douyu.py im ...

  5. python scrapy爬虫框架概念介绍(个人理解总结为一张图)

    python的scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架   python和scrapy的安装就不介绍了,资料很多 这里我个人总结一下,能更加快理解scrapy和快速上手一个简 ...

  6. Python之Scrapy爬虫框架安装及简单使用

    题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...

  7. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  8. scrapy爬虫框架教程(二)-- 爬取豆瓣电影

    前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...

  9. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】

    (1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...

随机推荐

  1. django internal search

    最近改进了项目中的站内搜索的功能,增加了全文索引,提升了搜索速度.因为项目框架是django,所以采用django+haystack+pyelasticsearch+elasticsearch的方式实 ...

  2. Android 仿土巴兔选择效果

    1,前两天在群里看到有人在讨论土巴兔的选择装修风格的效果,自己也想实现,果断百度一下,有些好的文章,就花了些时间来分析了下,先看看别人土巴兔原装的功能 2,可以看到,基本上可以使用一个vviewpag ...

  3. 《玩转shutdown》-linux命令五分钟系列之十三

    1 我想立即关机! $shutdown -h now 2 我想立即重启 $shutdown -r now 3 我想在23:30分准时关机 $shutdown -h 23:30 4 我想在15分钟后关机 ...

  4. for循环和经典案例

    循环:初始条件,循环条件,状态改变,循环体.for(初始条件;循环条件;状态改变){ 循环体}for(int i=1;i<=10;i++){ }例子:100以内与7有关的数.求100以内所有数的 ...

  5. Java学习笔记14---this作为返回值时返回的是什么

    有时会遇到this作为返回值的情况,那么此时返回的到底是什么呢? 返回的是调用this所处方法的那个对象的引用,读起来有点绕口哈,有没有想起小学语文分析句子成份的试题,哈哈. 一点点分析的话,主干是& ...

  6. SQL查询系列1---

    1.查询关系为夫妻,年龄相加大于60的信息 表1 信息表 info id 编号   sex 性别 0-女,1-男 age 年龄   表2 关系表 rel id1 编号1 外键 id2 编号2 外键 r ...

  7. Log4Net使用学习笔记

    项目源文件下载https://files.cnblogs.com/files/ckym/Log4NetTestSourceCode.zip Log4net是一款非常好用的日志记录的框架,使用它可以实现 ...

  8. SpringCloud Feign

    ⒈Feign是什么? Feign是Netflix开发的声明式.模板化的HTTP客户端, Feign可以帮助我们更快捷.优雅地调用HTTP API. SpringCloud微服务项目之间调用是通过Res ...

  9. Docker:Docker打包Web API成镜像并上传到Docker Hub(2)

    Docker官方镜像:https://hub.docker.com/: 本文将把一个webapi制作成docker镜像 一.Docker命令 打开Docker Quickstart,有以下常用的命令 ...

  10. git 基础知识

    git 分布式版本控制系统 git三棵树: 工作目录 红色 等待添加到暂存区域 需执行git add filename 命令添加到暂存区 暂存区域 绿色 文件等待被提交 需执行 git commit ...