python全系列之爬虫scrapy_4python全栈之路系列之scrapy爬虫s

python全栈之路系列之scrapy爬虫

An open source and collaborative framework for extracting the data you need from websites.

Scrapy运行流程大概如下:

引擎从调度器中取出一个链接(URL)用于接下来的抓取

引擎把URL封装成一个请求(Request)传给下载器

下载器把资源下载下来,并封装成应答包(Response)

爬虫解析Response

解析出实体(Item),则交给实体管道进行进一步的处理

解析出的是链接(URL),则把URL交给调度器等待抓取

安装

因为我是Ubuntu系统,所以可以直接通过pip安装scrapy

pip install scrapy

yum install gcc gcc-c++ python-devel mysql-devel zlib-devel openssl-devel -y

pip install twisted==13.1.0()

安装时候报错,需要安装着两项低版本的twisted

使用

创建项目

scrapy startproject xiaohuar

目录结构

编写爬虫

创建文件:”xiaohuar/xiaohuar/spiders/myspider.py”

运行

进入xiaohuar目录,运行命令

一个抓取图片的小实例

选择器

基本的选择器

选择器

描述

//

子子孙孙

/

孩子

//div[@class="c1"][@id='i1']

属性选择器

//div//img/@src

div下所有的img属性src

//div//a[1]

索引取值

//div//a[1]//text()

索引取值的内容

通过extract获取真实的数据:

支持正则

选择器

描述

//.select("div//a[1]").re("昵称:(\w+)")

正则

两种查找方式

正则表达式实例

扩展

重复的URL不访问

先把长的URL进行MD5加密,加密成32或者64位,可以保存在一个集合或者缓存、数据库中,每次抓取之前都先判断有没有这个URL。

递归查找

74a30480b4c9c837778beeefb136044b.png

设置查找深度:修改settings.py配置文件,加入以下参数指定深度DEPTH_LIMIT = 1

内容格式化

就是相当于分类,比如说下面的文件:

文件

功能

myspider.py

查找URL的规则

items.py

数据

pipelines.py

数据持久化

如图所示:

3e61e91b67c3c9009ebb5132c8fef4d4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值