python爬虫之scrapy入门
python爬虫之scrapy框架
一、scrapy框架简介
scpay框架官方文档中文版本:https://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
1.1 简介
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
1.2 scrapy核心
Scrapy Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。
Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
Downloader Middlewares(下载中间件):一个可以自定义扩展下载功能的组件。
Spider Middlewares(Spider中间件):一个可以自定扩展和操作引擎和Spider中间通信的功能组件。
二、scrapy框架的安装
2.1 使用anaconda进行安装scrapy
2.2.1 使用命令安装
pip install scrapy
2.2.2 使用anaconda进行安装
使用anaconda进行安装scrapy,找到对应的scrapy库进行安装即可。
2.2 创建scrapy项目
scrapy startproject spider
项目创建成功。
2.3 创建爬虫程序
创建项目后进入项目文件夹,执行该命令快速创建爬虫程序,后接爬虫名、爬去站点的域名,将在spiders文件夹下生成一个基本框架的爬虫程序。
scrapy genspider [name] [domain]
2.4 保存文件
scrapy crawl [name] -o [file]
该条命令是运行name名字的爬虫,并将数据保存为file,注意file是带格式的文件名,目前支持json、json lines、csv、xml、pickle、marshal。
2.5 scrapy常用的命令
三、scrapy爬虫案例
3.1 创建爬虫项目
scrapy startproject spider
3.2 创建爬虫程序
scrapy genspider job 51job.com
3.3 编写核心爬虫代码
这里采用的是xpath的方式
3.3.1 源代码
import scrapyclass JobSpider(scrapy.Spider):name = 'job' # 爬虫名字allowed_domains = ['51job.com'] # 域名start_urls = ['https://search.51job.com/list/020000,000000,0000,00,9,99,python,2,1.html'] # 爬虫开始采集的网站def parse(self, response):'''解析数据的的,response就是start_url网址返回的数据:param response::return:'''# print(response.text)# 选择出网址selectors = response.xpath('//div[@class="e"]')for selector in selectors:url = selector.xpath('./a/@href').get() # 接着上一步的xpath继续选择要加个.# print(url)if url:yield scrapy.Request(url, callback=self.parseDetail)def parseDetail(self, response):salary = response.xpath('//div[@class="cn"]/strong/text()').get(default='')title = response.xpath('//div[@class="cn"]/h1/text()').get(default='')# com = response.xpath('//div[@class="er"]/a/text()').get(default='')items={'薪资':salary,'职位':title}yield items# return items
3.3.2 设置请求头
3.4 保存到csv文件当中
scrapy crawl job -o job.csv
python爬虫之scrapy入门相关推荐
- python数据分析案例2-1:Python练习-Python爬虫框架Scrapy入门与实践
本文建立在学习完大壮老师视频Python最火爬虫框架Scrapy入门与实践,自己一步一步操作后做一个记录(建议跟我一样的新手都一步一步进行操作). 主要介绍: 1.scrapy框架简介.数据在框架内如 ...
- 【python 爬虫】 scrapy 入门--爬取百度新闻排行榜
scrapy 入门–爬取百度新闻排行榜 环境要求:python2/3(anaconda)scrapy库 开发环境:sublime text + windows cmd 下载scrapy(需要pytho ...
- 10分钟python爬虫_python scrapy 入门,10分钟完成一个爬虫
在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...
- Python爬虫框架 scrapy 入门经典project 爬取校花网资源、批量下载图片
####1.安装scrapy 建议:最好在新的虚拟环境里面安装scrapy 注意:博主是在 Ubuntu18.04 + Python3.6 环境下进行开发的,如果遇到安装scrapy不成功请自行百度/ ...
- Python爬虫框架Scrapy入门(三)爬虫实战:爬取长沙链家二手房
Item Pipeline介绍 Item对象是一个简单的容器,用于收集抓取到的数据,其提供了类似于字典(dictionary-like)的API,并具有用于声明可用字段的简单语法. Scrapy的It ...
- python 爬虫框架scrapy 入门 爬取博客园新闻(代码)
1.代码jobbole.py写爬取策略, 2.settings.py 配置pipelines.配置图片下载.配置是否遵循robote协议.数据库配置等 3.pipelines.py 主要是配置数据存 ...
- python爬虫之Scrapy介绍八——Scrapy-分布式(以爬取京东读书为示例)
Scrapy-分布式(scrapy-redis)介绍 1 Scrapy-分布式介绍 1.1 Scrapy-redis工作原理 1.2 Scrapy-redis 安装和基本使用 1.2.1 安装 1.2 ...
- python常用命令汇总-Python爬虫框架Scrapy常用命令总结
本文实例讲述了Python爬虫框架Scrapy常用命令.分享给大家供大家参考,具体如下: 在Scrapy中,工具命令分为两种,一种为全局命令,一种为项目命令. 全局命令不需要依靠Scrapy项目就可以 ...
- Python爬虫开发从入门到实战
Python爬虫开发从入门到实战(微课版) 第1章 绪论 爬虫的主要目的是获取网页内容并解析.只要能达到这个目的,用什么方法都没有问题. 关于获取网页,本书主要介绍了Python的两个第三方模块,一个 ...
- python爬虫之Scrapy框架的post请求和核心组件的工作 流程
python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...
最新文章
- JDBC连接各种数据库方法
- nginx ngx_modules
- 提高性能:流的非阻塞处理
- MySQL_数据库操作
- VB利用资源文件进行工作
- linux上openmp测试
- python字典弱引用_weakref
- 弘辽科技:手淘推荐流量总是忽高忽低如何稳定获取
- unity虚拟摇杆控制的实现
- js根据本地文件路径上传文件(流上传)
- win7升级Internet Explorer 11 先决条件更新
- android jcenter google 镜像
- Web2.0的系统架构与六大关键问题
- 图像处理+机器学习相关资源整合
- Markdown符号:整除、不整除、恰整除、不恰整除
- 在word/wps插入代码+保持源代码风格+加行号
- SQLZOO刷题笔记
- B/S架构与C/S架构
- 安科瑞企业综合能效管理系统 时丽花
- 15 Rest高级客户端实践(一):文档索引
热门文章
- Android原生系统真的那么好用吗?安卓原生系统吊打其他系统,因为有Google-Play
- 你技术这么好,总要改变点什么把!
- 二、echarts地图从全国进省从省进市
- 极域电子书包课堂管理系统
- 用极域课堂软件卸载软件
- 计算机网络硬件开关win7,大师为你win7系统笔记本无线网络红叉电脑网络连接不可用的修复办法_...
- 华为公司“22个不”
- centos7安装/卸载pip
- java项目:基于springboot高校党建管理系统(springboot+vue+mysql+redis) 1010
- 制作卡通人物的3种简单方法