Scrapy框架的使用
【摘要】 Python爬虫入门之 Scrapy框架的使用
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 [1]
支持自定义,方便,好用。异步的,,速度嗖嗖嗖的!!!
异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框...
Python爬虫入门之 Scrapy框架的使用
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 [1]
支持自定义,方便,好用。异步的,,速度嗖嗖嗖的!!!
异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架
常用命令:
方法 | 描述 |
---|---|
scrapy startproject scrapydemo | 创建一个名为 scrapydemo 的scrapy项目 |
scrapy genspider scrapydemo bilibili.com | 创建一个名为scrapydemo的spider,访问域名为bilibili.com |
scrapy crawl -o xxx.json | 数据存储到 xxx.json |
cmdline.execute(“scrapy crawl scrapyspider”.split()) | 启动scrapy的scrapyspider文件 |
0. 准备工作
查看scrapy命令
scrapy -h
安装
pip install scrapy
1. 创建一个scrapy项目
创建scrapy项目
scrapy startproject scrapydemo
切换到scrapydemo项目
cd scrapydemo
创建一个新的spider
scrapy genspider scrapydemo bilibili.com
流程图:
画图
- Spider的将需要发送请求的
request
发送给Engine(引擎 - Engine将
request
发送给Scheduler(调度器 - Scheduler(调度器,可理解为url队列),生成request请求交给Engine
- Engine拿到
request
,通过DownloaderMiddleware(可选,主要有UA
,Cookie
,代理IP
)进行层层过滤发送给Downloader - Downloader向互联网发送请求,获取到
response
后,又经过SpiderMiddleware(爬虫中间件)发送给Engine - Engine获取到
response
数据之后,返回给Spider, - Spider的
parse()
方法对获取到的response
数据进行处理,解析出item
和request
,然后发送给Engine - Engine获取到
item
和request
,将item
发送给ItemPipeline(管道)进行数据持久化,将request
发送给Scheduler(调度 - 以上步骤会一直循环,循环到无
request(url)
请求,程序才停止。
注意!即使某个request中报错了,程序也会继续执行到没有request请求才停止。
部分文件说明:
文件 | 说明 |
---|---|
items.py | 定义采集的数据字段,用于结构化数据 |
pipelines.py | 数据持久化 |
settings.py | 配置文件 |
spiders | 编写爬虫规则 |
middleware.py | 中间件,如为请求添加cookie、ua等 |
2. 案例实战
链家
查看君子协议:https://www.bilibili.com/robots.txt
3. 数据持久化
存储为csv:
cmdline.execute('scrapy crawl spider -o lianjia.csv'.split())
- 1
存储为json:
cmdline.execute('scrapy crawl spider -o lianjia.json'.split())
- 1
存储到数据库:
pipeline.py
文章来源: blog.csdn.net,作者:北山啦,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_45176548/article/details/113259910
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)