scrapy爬虫框架

Scrapy是一款基于Python的高效网络爬虫框架,提供多进程、多线程、队列和去重等功能,用户只需专注于业务逻辑。本文介绍其安装、工作原理、目录结构、爬虫文件生成、response对象使用、数据提取方法及格式输出技巧。

scrapy是什么?是一个非常强大的python爬虫框架,底层语言使用python实现。既然是框架,肯定已经实现了很多其他的功能,用户只需要将自己的精力放到自己的业务逻辑中即可。多进程、多线程、队列、去重
安装:pip install scrapy
scrapy的工作原理
引擎(engine)、爬虫(spiders)、调度器(scheduler)、下载器(downloader)、管道(pipeline)
工作原理见:百鸟朝凤图
使用:
(1)创建工程
scrapy startproject xxx
(2)认识目录结构
firstbloodpro 工程目录
firstbloodpro 工程核心目录
pycache 缓存文件
spiders 爬虫部分
pycache 缓存文件
init.py 包的标记
lala.py 爬虫文件(
init.py 包的标记
items.py 定义数据结构的地方(

middlewares.py 中间件(
pipelines.py 管道(

settings.py 爬虫配置文件(*)
scrapy.cfg 工程的配置文件(一般不用)
(3)生成爬虫文件
cd firstbloodpro
scrapy genspider 爬虫名字 网站域名
(4)认识response对象
运行scrapy
cd firstblood/firstblood/spiders
scrapy crawl 爬虫名字
response.text 字符串格式内容
response.body 字节格式内容
response.url 对应请求url
response.headers 响应头
response.status 状态码
(5)如何提取数据
scrapy里面已经都集成好了bs和xpath,直接使用即可
response.css() 选择器
response.xpath() xpath路径
和以前的选择器和xpath略有不同,得到的都是selector对象,是scrapy自己封装的。通过extract进行提取即可
ret = response.xpath(‘xxx’)
ret.extract()[0] === ret[0].extract() == ret.extract_first()
前两个一模一样,最后一个和前两个略有区别
当xpath错误的时候,extract_first提取的为none,其他两个报错
无论获取的是属性还是内容,都需要extract一下

	css获取属性和文本,和以前的不一样
	ret = response.css('#content-left > div > div > a > img::attr(src)')
	ret = response.css('#content-left > div > div > a > h2::text')
	得到的都是selector对象,需要extract才可以
(6)导出为指定格式文件
	scrapy crawl qiubai -o qiubai.json
	scrapy crawl qiubai -o qiubai.xml
	scrapy crawl qiubai -o qiubai.csv
	解决输出空行问题
		https://blog.youkuaiyun.com/qq_38282706/article/details/80279912

2、scrapy shell
是什么?scrapy的一个调试工具,用来调试你的css、xpath、或者链接提取器,在scrapy shell中是正确的,到代码中肯定没问题
依赖 ipython 是一个更加智能的python交互环境
pip install ipython
一般情况下,在任何终端页码直接输入 scrapy shell url 就可以直接进入调试页面,如果进不去,新建一个工程,做一些简单的配置,然后再工程终端下再执行 scrapy shell url
//*[@id=“qiushi_tag_121183889”]/div[1]/a[1]/img

item对象的用法和字典的用法一模一样,而且可以快速的将这种对象转化为字典
	d = dict(item)

工作原理:框架流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值